İ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 minimumCellNum
sınıf özelliği olarak ilan edin
var minimumCellNum: Int?
2.) hesaplamak minimumCellNum
ve resim tableView.contentOffset
olarakviewWillAppear
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 None
kaydedintableView(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.