Я программно создал ImageView в методе cellForRowAt
и добавил также в ячейку:
let imageName = "Default.png"
let image = UIImage(named: imageName)
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: 29, y: 17, width: 14, height: 13)
cell.addSubview(imageView)
Работает, нечего ворчать.Теперь я хочу показать это изображение, только если indexpath.row равно 2, поэтому я добавил простое выражение if:
if indexPath.row == 2 {
let imageName = "Default.png"
let image = UIImage(named: imageName)
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: 29, y: 17, width: 14, height: 13)
cell.addSubview(imageView)
}
Это работает.Но когда я прокручиваю вниз, у некоторых ячеек тоже есть изображение.Я подозревал, что в cellForRowAt
работает что-то не так, поэтому я добавил в UITableViewCell
метод prepareForReuse
, чтобы скрыть каждый imageView, и только если if-выражение истинно, то hide будет удален:
override func prepareForReuse() {
super.prepareForReuse()
self.imageView!.isHidden = true
}
if indexPath.row == 2 {
let imageName = "Default.png"
let image = UIImage(named: imageName)
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: 29, y: 17, width: 14, height: 13)
imageView.isHidden = false
cell.addSubview(imageView)
}
К сожалению, это не работает, и я понятия не имею, что я мог бы улучшить.