AutoLayout kısıtlamaları ve UITableViewAutomaticDimension kullanıyorsanız, bu hata koddaki boyunuzu geçersiz kılarak göz ardı edilebilecek bazı hatalı bir sorun değildir. Bu, hücre yüksekliğini otomatik olarak belirlemenin işe yaramadığı anlamına gelir çünkü gerekli dikey kısıtlamalara sahip değilsiniz.
Benim gibiyseniz ve bu hatayı alıyorsanız ve hangi hücrenin hatayı attığını belirlemek için yardıma ihtiyacınız varsa, aşağıdaki satırı 'heightforRowAtIndexPath' yönteminizin geri dönüşünden hemen önce ekleyebilirsiniz.
NSLog(@"Section %ld Row %ld", (long)[indexPath section], (long)[indexPath row]);
Bu, uzun bir bölümler ve satırlar listesi yazdırır, ancak hata, hataya neden olan belirli hücrenin hemen ardından görünecektir ve soruna hangi hücrenin neden olduğunu hızlı bir şekilde belirleyebilir ve kısıtlamalarınızı buna göre düzeltebilirsiniz. Bu, özellikle statik hücreler için faydalıdır. Yüksekliği manuel olarak girilen bir sayı ile geçersiz kılmak, autoLayout ve otomatik hücre yüksekliklerini kullanmıyorsanız işe yarayacaktır, ancak kullanmaya çalıştığınız bir şeyse çok kötü bir çözüm olan bu özellikleri esasen devre dışı bırakacaktır.
Daha önce 'heightForRowAtIndexPath' yöntemini kullanmadıysanız ancak UITableViewAutomaticDimension ayarınızı geri almadan bu hatayı ayıklamak istiyorsanız, bunu kodunuza eklemeniz yeterlidir:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"Section %ld Row %ld", (long)[indexPath section], (long)[indexPath row]);
return UITableViewAutomaticDimension;
}