добавить изображение в ячейку uitableview



У меня есть tableview, Как я могу добавить изображение слева от этой ячейки?

673   5  

5 ответов:

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;

Если по какой-то причине стандартное поведение не соответствует вашим потребностям (обратите внимание, что вы можете настроить свойства этого стандартного представления изображения), то вы можете добавить свой собственный 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

все хорошие ответы от других. Вот два способа решить эту проблему:

  1. непосредственно из кода, где вам придется программно управлять размерами 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
    }
    
  2. из раскадровки, где вы можете использовать инспектор атрибутов и инспектор размеров на панели утилиты для настройки позиционирования, добавления ограничений и указания размеров

    • в раскадровке, добавить в ImageView объект в представлении содержимого ячейки с требуемыми размерами и добавьте тег в представление(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
      }
      

Comments

    Ничего не найдено.