Как изменить изображение, которое я установил в tableView (_: willDisplayHeaderView: forSection :)? - PullRequest
0 голосов
/ 04 ноября 2018

Я установил изображение для каждого раздела заголовка tableView в tableView (_: willDisplayHeaderView: forSection :) таким образом:

    let image = UIImage(named: "arrow-down")
    let imageView = UIImageView(image: image!)
    imageView.frame = CGRect(x: 220, y: 12, width: 10, height: 5)
    view.addSubview(imageView)
    header.addSubview(imageView)

Чтобы попытаться изменить изображение (это шеврон, который я использую, чтобы показать возможность свернуть раздел), я пытался таким образом, но он устанавливает только верхний заголовок, вместо этого я хотел бы заменить изображение в определенном разделе ( У меня есть пункт раздела Int):

    let frame = CGRect(x: 220, y: 12, width: 10, height: 5)
    let headerImageView = UIImageView(frame: frame)
    let image: UIImage = UIImage(named: "arrow-up")!
    headerImageView.image = image // sets the top header only

Как изменить изображение, отображаемое в определенном разделе?

Я прочитал этот вопрос Как изменить изображение кнопки, добавленное в заголовок раздела TableView , но у меня нет кнопки в разделе.

Я также нашел другие подобные вопросы, но я не очень хорошо знаю Objective-C и не могу легко конвертировать код в текущем Swift без ошибок.

1 Ответ

0 голосов
/ 04 ноября 2018
If you know the specific position, you can do it at the moment when the table is loading the elements if what you want is to add an initial image (Option 1), if what you want is that when you touch the cell change the image you can do it the following way (Option 2)

-----------
Option 1
-----------
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
     if(indexPath.row == //index of your cell){ 
      let frame = CGRect(x: 220, y: 12, width: 10, height: 5)
      let headerImageView = UIImageView(frame: frame)
      let image: UIImage = UIImage(named: "arrow-up")!
      headerImageView.image = image
     }
}

-----------
Option 2
-----------

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
     if(indexPath.row == //index of your cell){ 
      let frame = CGRect(x: 220, y: 12, width: 10, height: 5)
      let headerImageView = UIImageView(frame: frame)
      let image: UIImage = UIImage(named: "arrow-up")!
      headerImageView.image = image
     }
}
...