İOS 8'de tableView'i doldurmak için yeterli satır olmadığında mevcut tüm çözümler benim için çalışmıyor çünkü iOS bu durumda eki otomatik olarak ayarlayacaktır. (Yeterli satır olduğunda mevcut yanıtlar iyidir)
Bu konuda 6 saat harcadıktan sonra nihayet bu çözümü aldım.
Kısacası, yeterli hücre yoksa tableView'e boş hücreler eklemeniz gerekir, bu nedenle tableView'in içerik boyutu, iOS'un eki sizin için ayarlamayacağı kadar büyüktür.
İşte Swift'de bunu nasıl yaptım:
1.) bir değişkeni minimumCellNumsınıf özelliği olarak ilan edin
var minimumCellNum: Int?
2.) hesaplamak minimumCellNumve resim tableView.contentOffsetolarakviewWillAppear
let screenHeight = Int(UIScreen.mainScreen().bounds.height)
self.minimumCellNum = (screenHeight - 103 - heightOfOtherCustomView) / heightOfYourCell
self.tableView.contentOffset = CGPointMake(0, 44)
3.) içinde tableView(tableView: UITableView, numberOfRowsInSection section: Int))
let numOfYourRows = YOUR LOGIC
if numOfYourRows > minimumCellNum {
return numOfYourRows
} else {
return minimumCellNum!
}
4.) Film şeridinde ve içinde selectionözniteliği olan boş bir hücre NonekaydedintableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath)
if indexPath.row < numOfYourRows {
return YOUR CUSTOM CELL
} else {
let cell = tableView.dequeueReusableCellWithIdentifier("EmptyCell", forIndexPath: indexPath) as! UITableViewCell
return cell
}
5.) içinde tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
if tableView == self.tableView {
if numOfYourRows < (indexPath.row + 1) {
return
}
YOUR LOGIC OF SELECTING A CELL
}
Bu mükemmel bir çözüm değil, ancak iOS 8'de benim için gerçekten işe yarayan tek geçici çözüm bu. Daha düzgün bir çözüm olup olmadığını bilmek istiyorum.