Я создаю приложение для повышения производительности в Swift. Я не использую прототип ячейки в раскадровке, так как большая часть из них уже написана в коде. Я хотел бы установить флажок. Как бы я это сделал?Как добавить кнопку в ячейку таблицы в iOS?
ответ
Хотя ответ Тима технически правильный, я бы не советовал это делать. Поскольку UITableView использует механизм dequeuing, вы можете фактически получить повторно используемую ячейку, у которой уже есть кнопка (потому что вы добавили ее ранее). Таким образом, ваш код фактически добавляет к нему вторую кнопку (и третий, четвертый и т. Д.).
Что вы хотите сделать, это создать подкласс из UITableViewCell, который добавляет кнопку к себе, пока она создается. Затем вы можете просто удалить эту ячейку из своего UITableView, и на ней автоматически будет ваша кнопка, без необходимости делать это в методе cellForRowAtIndexPath
.
Что-то вроде этого:
class MyCustomCellWithButton: UITableViewCell {
var clickButton = UIButton.buttonWithType(UIButtonType.Custom) as! UIButton;
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier);
self.contentView.addSubview(self.clickButton);
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}
override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
// Configure the view for the selected state
}
}
И тогда вы можете его из очереди в cellForRowAtIndexPath
как это.
var cell = tableView.dequeueReusableCellWithIdentifier("my-cell-identifier") as? MyCustomCellWithButton;
if (cell == nil) {
cell = MyCustomCellWithButton(style: UITableViewCellStyle.Default, reuseIdentifier: "my-cell-identifier");
}
return cell!;
Ну, в первую очередь, ваш cellForRowAtIndexPath должен, вероятно, использовать механизм dequeue, чтобы вы не воссоздавали ячейки каждый раз при виртуализации.
Но в остальном все, что вам нужно сделать, это создать кнопку и добавить ее в виде суб-представления в ячейку.
cell.addSubview(newButton)
Но, конечно же, вам необходимо будет управлять калибровкой и компоновкой по мере необходимости.
Спасибо. Все еще немного смутно. Можете ли вы привести пример (со случайным размером/макетом)? – nintyapple
Я мог бы, но это могло бы стать довольно длинным. Вместо этого ознакомьтесь с этим руководством: http://makeapppie.com/tag/addsubview-in-swift/ – Tim
UITableViewCell также имеет выбранное состояние и доступный didSelect и didDeselect метода, который слушает стучит по всей клетке. Возможно, это немного более практично, поскольку вы, похоже, хотите проверить/снять флажки, что более или менее равнозначно выбору. Вы можете установить ячейку в выбранном состоянии сразу после ее удаления.
- 1. Как добавить кнопку удаления в ячейку таблицы в IOS swift
- 2. Добавить кнопку в отдельную ячейку
- 3. Как добавить кнопку в ячейку в виде таблицы
- 4. Как добавить кнопку в каждую ячейку uitableview?
- 5. Как добавить кнопку в каждую ячейку?
- 6. Как добавить кнопку в ячейку collectionview
- 7. Как добавить пользовательский UIButton в ячейку таблицы?
- 8. Добавить пользовательскую ячейку в JKExpandtableview как дочернюю ячейку в iOS
- 9. Как создать многострочную ячейку таблицы в iOS?
- 10. Как создать ячейку просмотра таблицы как кнопку?
- 11. Как добавить подтекст в ячейку таблицы?
- 12. Как добавить действие sharekit в ячейку таблицы?
- 13. Как добавить определенную ячейку таблицы в таблицу?
- 14. Как добавить изображение в ячейку таблицы
- 15. Как добавить кнопку внутри заголовка представления таблицы в ios?
- 16. Как добавить кнопку в ios TableView строка
- 17. Добавить ячейку внизу UITableView в iOS
- 18. Как добавить ячейку в таблицу, используя iOS 9?
- 19. Libgdx добавить ячейку таблицы
- 20. Как вставить кнопку в ячейку просмотра таблицы Swift
- 21. Вопрос iPhone: Как добавить кнопку в ячейку tableview?
- 22. iOS: переместить ячейку таблицы в другую секцию
- 23. Как добавить ячейку в UITableView?
- 24. Отключить многоэлементную ячейку вне таблицы в iOS
- 25. Как добавить кнопку «Избранное» в приложении ios
- 26. Как добавить плавучую кнопку в камеру iOS?
- 27. Как добавить кнопку в виде таблицы JavaFX
- 28. Как определить ячейку в виде таблицы, нажатой на кнопку
- 29. iOS contentStretch устарел, как растянуть ячейку таблицы?
- 30. Как добавить данные отдельно в ячейку таблицы view отдельно
Вам необходимо создать свой флажок и добавить его в виде суб-представления в свою ячейку. Серьезно, хотя Interface Builder позволит вам сделать это примерно через 5 секунд. – Paulw11