Я недавно начал изучать развитие iOS, и у меня возникли проблемы.Как показать пользовательский вид в UITableviewCell при нажатии кнопки?
У меня есть табличное представление с пользовательской ячейкой: ярлык, изображение (скрыто по умолчанию) и кнопка. Я хочу, чтобы он работал так, чтобы при нажатии кнопки на ячейку показывалось изображение. Проблема заключается в том, что каждый раз, когда ячейка повторно используется, изображение отображается для повторно используемой ячейки. Я хочу заставить его работать так, чтобы, если кнопка нажата для первой ячейки, ТОЛЬКО отображается первое изображение изображения ячеек. Если нажать кнопку для первой и третьей ячейки, изображение должно показать ТОЛЬКО для первой и третьей строки, а не для любой другой строки.
Мое текущее решение:
class CustomTableViewCell: UITableViewCell {
@IBOutlet var cellTitleLabel: UILabel!
@IBOutlet var cellImageView: UIImageView!
var showImageView = false
@IBAction func showImageViewAction(sender: UIButton) {
showImageView = true
displayCell()
}
func displayCell() {
if showImageView {
cellImageView.hidden = false
} else {
cellImageView.hidden = true
}
}
}
И для контроллера представления:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 30
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("CustomCell", forIndexPath: indexPath) as! CustomTableViewCell
return cell
}
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
let customCell = cell as! CustomTableViewCell
customCell.displayCell()
}
Любые предложения о том, как создать, так что вид изображения получает скрыт, когда повторно клетка?
Так что, когда вы нажмете на кнопку, вид изображения показывает на все 30 клетки? –
Нет. В настоящее время, если я нажимаю кнопку для первой ячейки, изображение отображается для следующих ячеек: 1, 6, 11, 16, 21 и 26. Я предполагаю, что это потому, что ячейки 6, 11, 16, 21 и 26 повторно использует ячейку 1 при вызове dequeueReusableCellWithIdentifier – user3489053
. Вы можете сначала получить конкретную ячейку [indexPath.row], а затем спрятать изображение для этой ячейки? –