Aşağıdakini, içerik görünümüne göre yüksekliğini ayarlayan bir UITableViewCell
yapmaya çalışıyorum. Merkezdeki görüntü, hücre çerçevesi kadar geniş olmalı ve yüksekliğini orantısal olarak ayarlamalıdır. Gördüğünüz gibiUITableViewCell, içeriğine uyacak şekilde yüksekliği nasıl ayarlayabilir?
, hücrede görüntü istediğim yolu gibi görüntülenmez. UIImageView
'un yüksekliğini override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
'da 320.0 olarak ayarlamaya çalıştım, ancak hiç yardımcı olmuyor.
Soru: Hücrenin görüntü yüksekliğine uymasını nasıl sağlayabilirim? Bilginize
: Ben func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat
UIImageView
ya da bir şey için bir yükseklik sınırlaması ayarlayabilirsiniz yok geçersiz kılma değilim
- , sadece görüşlerini düzenlemek için padding kullanarak değilim.
- Görüntü, görünümüne uygun modunu kullanarak görüntüleniyor.
Düzenleme: Bir yükseklik sınırlaması eklemek için ayrıca taşınan
canlandırmaya:
class MyTableViewPostCell: UITableViewCell {
@IBOutlet weak var contentLabel: UILabel!
@IBOutlet weak var pictureImageView: UIImageView!
@IBOutlet weak var pictureImageViewHeightConstraint: NSLayoutConstraint!
}
class MyTableViewController: UITableViewController {
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("MyTableViewPostCell") as MyTableViewPostCell
cell.contentLabel.text = "This is a very very very very very very very long content."
cell.pictureImageViewHeightConstraint.constant = 320
cell.pictureImageView.sd_setImageWithURL(NSURL(string: "http://somedomain.com/pic"))
return cell
}
}
Ve çalıştırırken ben bir kısıtlama çatışma hata var. Aşağıya bakın:
(
"<NSLayoutConstraint:0x7ff7b5026c30 V:[UIImageView:0x7ff7b50289e0(40)]>",
"<NSLayoutConstraint:0x7ff7b5029a90 V:[UIImageView:0x7ff7b5029990(320)]>",
"<NSLayoutConstraint:0x7ff7b502a630 UIImageView:0x7ff7b50289e0.top == UITableViewCellContentView:0x7ff7b5028910.topMargin + 6>",
"<NSLayoutConstraint:0x7ff7b502a770 V:[UIImageView:0x7ff7b50289e0]-(12)-[UILabel:0x7ff7b5029390'This is a very very very ...']>",
"<NSLayoutConstraint:0x7ff7b502a950 V:[UILabel:0x7ff7b5029390'This is a very very very ...']-(10)-[UIImageView:0x7ff7b5029990]>",
"<NSLayoutConstraint:0x7ff7b502aa40 UITableViewCellContentView:0x7ff7b5028910.bottomMargin == UILabel:0x7ff7b5029c20'Label'.bottom + 10>",
"<NSLayoutConstraint:0x7ff7b502aa90 V:[UIImageView:0x7ff7b5029990]-(17)-[UILabel:0x7ff7b5029c20'Label']>",
"<NSLayoutConstraint:0x7ff7b2cae430 'UIView-Encapsulated-Layout-Height' V:[UITableViewCellContentView:0x7ff7b5028910(283.5)]>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x7ff7b5029a90 V:[UIImageView:0x7ff7b5029990(320)]>
UIView-Encapsulated-Layout-Height
gelir, ancak çakıştığını gibi görünüyor nerede bilmiyorum. Bunu düzeltmenin herhangi bir yolu var mı? Teşekkürler!
üzerinde bu yayını bakınız: [dinamik hücre düzenleri ve değişken sıralı yüksekliklerinde UITableView Otomatik Düzeni kullanma] (http://stackoverflow.com/questions/18746929/using -auto-düzen-in-UITableView-için-dinamik-hücre-düzenleri-değişken sıralı-yükseklikler) – zisoft