UILabel'imin yüksekliğini yakalamaya çalışıyorum, böylece hücrenin yüksekliğini dinamik olarak ayarlayabilirim, ancak hiçbir zaman doğru yüksekliğe geri dönmez ve içeriğim her zaman kesik ve elipslerle eklenir.UILabel'ın yüksekliğim geri dönüşü asla doğru değil
Kodum:
let height = String(page.valueForKey(subject)).heightWithConstrainedWidth(self.view.frame.width - 30, font: UIFont.systemFontOfSize(16.0))
// and at the bottom of my class..
// Custom functions
extension String {
func heightWithConstrainedWidth(width: CGFloat, font: UIFont) -> CGFloat {
let constraintRect = CGSize(width: width, height: CGFloat.max)
let boundingBox = self.boundingRectWithSize(constraintRect, options: .UsesLineFragmentOrigin, attributes: [NSFontAttributeName: font], context: nil)
return boundingBox.height
}
}
nispeten geniş dinamik sayıda çeşit döndürür, ancak sayı her zaman kısa ve asla doğru olduğu için kesinlikle bir yiğit girişim yapar.
Yüksekliği nasıl ayıklandığım konusunda göze batmayan bir şey var mı? Bunu gerçekleştirmenin daha iyi bir yolu var mı?
Salutations! Bu çok büyük bir anlam ifade ediyor. 'CellForRowAtIndexPath' (UILabel'imi başlattığım) 'ın * heightForRowAtIndexPath'dan sonra çağrıldığı izlenimindeyim .. Sadece bir UILabel'ı ölçmek için kullanmamayı tercih ederim, sonra asla kullanmayın ve daha sonra yeniden oluşturun . CellForRowAtIndexPath işlevinin son sonucunu 'heightForRowAtIndexPath 'yöntemine göndermenin bir yolu var mı? UILabel içinde dize boyutunu döndürmek için '' 'string '' 'ı güncelleyebildiğim sanırım .. – Trip
Aslında, içerdiği etiketine göre bir hücreyi nasıl boyutlandıracağınızı bilmemek gerçekten sorun mu? Belki de sorman gereken budur! – matt
Yeterince adil. Yardımın için teşekkür ederim efendim. – Trip