SınıfDojo iOS Engineer burada! Bunu nasıl yaptığımızı paylaştığımıza memnun oldum.Slayter gibi
biz
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return myData.count + 1 // Add one for your custom cell
}
yapmak Fakat ek olarak biz de aşağıdakileri yapın sözü:
class CustomCell: UITableViewCell {
static let reuseIdentifier = "CustomCell"
// More code
}
: CustomCell böyle bir şey (tam değil) görünüyor
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = nil;
if self.indexIsForCustomCell(indexPath) {
cell = tableView.dequeueReusableCellWithIdentifier(CustomCell.reuseIdentifier)
// Additional configuration
} else {
cell = tableView.dequeueReusableCellWithIdentifier(RegularCell.reuseIdentifier)
// Additional configuration
}
return cell
}
Ve normal hücre gibi görünüyor:
Dinamik hücreler üzerine yazılıyor
class RegularCell: UITableViewCell {
static let reuseIdentifier = "RegularCell"
// More code
}
sebebi ne olursa olsun bu özel hücre veya normal hücreler olup olmadığı, aynı cellIdentifier
kullandığınız hat
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as UITableViewCell
Bildirimi taşımaktadır.
self.tableView.registerClass(RegularCell.class, forIdentifier: "new group")
self.tableView.registerClass(CustomCell.class, forIdentifier: "new group")
yapmanız gerektiğinden zaman:
self.tableView.registerClass(RegularCell.class, forIdentifier: RegularCell.reuseIdentifier)
self.tableView.registerClass(CustomCell.class, forIdentifier: CustomCell.reuseIdentifier)
VEYA
self.tableView.registerClass(RegularCell.class, forIdentifier: "regularCellReuseIdentifier")
self.tableView.registerClass(CustomCell.class, forIdentifier: "customCellReuseIdentifier")
aynı tanımlayıcı anahtarı kullanarak, anlatıyorsun Bu büyük olasılıkla aşağıdakileri yaparak demektir Her iki hücreyi aynı tip olarak tedavi etmek için
UITableView
. Bu yüzden ekranda çizilen yeni bir hücrenin belleğini geri alması gerektiğinde,
RegularCell
ve
CustomCell
'u birbirinin yerine kullanacaktır.
Bu, yardımcı oldu ve bizim App göz atın teşekkürler!
================= DÜZENLEME =================
Ben unuttuğunu Gerçekleşen indexIsForCustomCell
yöntemini ekleyin. İşte burada:
func indexIsForCustomCell(indexPath : NSIndexPath) -> Bool {
if self.myData.count > 0 {
return indexPath.section == 0 && indexPath.row == (self.myData.count+1)
}
return indexPath.section == 0 && indexPath.row == 0
}
Efendim, sorumu durdurarak çok teşekkür ederim. Şansımı aldığım zaman ASAP çözümünü deneyeceğim, çünkü şimdi okuldayım. Şimdi sonuca izin vereceğim. Bu arada; Uygulamam için başka bir çözüm buldum.Yani, UITableViewCell olarak özel bir nib dosyası oluşturdum. Benden nib dosyasını kaydettim ve bölüm için altbilgi olarak kullandım. Bu yaklaşım hakkında fikrinizi bilebilir miyim? Çünkü eğer verimli değilse, onu 'cellForRowAtIndex' işlevi içine ekleyerek ana yaklaşımıma geri döndüreceğim. Bir kez daha, zamanınız ve desteğiniz için çok teşekkür ederim. Gerçekten minnettarım. –
@OsmanSafaKaya yaklaşımınız işe yarayacaktır, ancak UITableViewCell size gerçekten bir 'tableFooterView' içinde gerek duymadığınız bir dizi ek kod verir. Örneğin, UITableViewCell, 'UIView' tabanına ek olarak bir 'contentView' içindeki her şeyi içerir. Bu büyük bir anlaşma değil, ancak yüklü ve kullanılan ek bir veri kümesi. Bunun yerine bir UIView kullanabilirsin. – Endama
Tavsiyeniz için teşekkürler. Çözümünüzü projem için uygulamaya çalışırken, 'hücre'yi nil' olarak atamaya çalıştığımda bir hata alıyorum. Hatayı [buradan] görebilirsiniz (https://i.imgsafe.org/7b54b0b.png). Bunun neden olabileceğini biliyor musunuz? –