У меня есть программно созданное табличное представление
var tableView: UITableView = UITableView()
var items = ["1","2","3","4","5","6"," 1","L 2","La 3","La 4","La 5","La 6","L 7","La 8","La 9","La 10","La 11","Lab 12","Lab 13","Lab 14","Lab 15","Lab 16","Lab 17","Lab 18","Lab 19","Lab 20","La 1","L 2","La 3"]
override func viewDidLoad() {
super.viewDidLoad()
tableView.frame = CGRectMake(0, 50, self.view.frame.width,100); //If we give self.view.frame.height It worked because no need to scroll
tableView.delegate = self
tableView.dataSource = self
tableView.estimatedRowHeight = 30
tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "Cell")
self.view.addSubview(tableView)
}
Вот код, у которого есть проблема
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell") as! UITableViewCell
if indexPath.row == 2 || indexPath.row == 3 {
var redBtn = UIButton()
redBtn = UIButton(frame: CGRectMake(0, 0, 40, 40))
redBtn.backgroundColor = UIColor.redColor()
redBtn.setTitle("das", forState: UIControlState.Normal)
cell.contentView.addSubview(redBtn)
}else {
cell.textLabel?.textAlignment = NSTextAlignment.Center
cell.textLabel?.text = items[indexPath.row]
}
return cell
}
}
Только во 2-й и 3-й строке мне нужно отобразить кнопку. Но при прокрутке таблицы она отображается во всех ячейках. Если увеличить высоту таблицы до высоты просмотра, тогда нет проблем, потому что прокрутки не происходит.
Я прочитал этот вопрос проблема прокрутки и перерисовки UITableView из этого, я обнаружил, что это из-за повторного использования проблема с ячейкой при прокрутке. Но это решение мне не помогло.
Подходящие решения приветствуются. Я дал полный код, чтобы вы могли скопировать и вставить его в проект, и получить проблему.
Заранее спасибо