tableview
がありますが、このセルの左側に画像を追加するにはどうすればよいですか?
cell.imageView.image = [UIImage imageNamed:@"image.png"];
更新:スティーブン・フィッシャーが言ったように、これはデフォルトのスタイルであるスタイルUITableViewCellStyleDefaultのセルに対してのみ機能するはずです。他のスタイルの場合、UIImageViewをセルのcontentViewに追加する必要があります。
このコードを試してください:-
UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(3,2, 20, 25)];
imv.image=[UIImage imageNamed:@"arrow2.png"];
[cell addSubview:imv];
[imv release];
標準のUITableViewCellには、画像が設定されている場合、すべてのラベルの左側に表示されるUIImageViewが既に含まれています。 imageViewプロパティを使用してアクセスできます。
cell.imageView.image = someImage;
何らかの理由で標準の動作がニーズに合わない場合(その標準の画像ビューのプロパティをカスタマイズできることに注意してください)、Amanが答えで示唆したように、独自のUIImageViewをセルに追加できます。ただし、そのアプローチでは、セルのレイアウトを自分で管理する必要があります(たとえば、セルラベルが画像と重ならないようにします)。そして、サブビューをセルに直接追加しないでください-セルのcontentViewに追加します:
// DO NOT!
[cell addSubview:imv];
// DO:
[cell.contentView addSubview:imv];
私の仲間Swiftユーザーの場合、必要なコードは次のとおりです。
let imageName = "un-child-rights.jpg"
let image = UIImage(named: imageName)
cell.imageView!.image = image
Swift 4ソリューション:
cell.imageView?.image = UIImage(named: "yourImageName")
他からのすべての良い答え。これを解決する方法は2つあります。
Imageviewのサイズをプログラムで制御する必要があるコードから直接
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "xyz", for: indexPath)
...
cell.imageView!.image = UIImage(named: "xyz") // if retrieving the image from the assets folder
return cell
}
ストーリーボードから、ユーティリティペインの属性インスペクターとサイズインスペクターを使用して、位置を調整し、制約を追加し、寸法を指定できます
ストーリーボードで、希望するサイズでimageViewオブジェクトをセルのコンテンツビューに追加し、属性インスペクターのview(imageView)にタグを追加します。次に、viewControllerで次の操作を行います
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "xyz", for: indexPath)
...
let pictureView = cell.viewWithTag(119) as! UIImageView //let's assume the tag is set to 119
pictureView.image = UIImage(named: "xyz") // if retrieving the image from the assets folder
return cell
}