2016-09-08 40 views
0

這是UITableViewCell我:自漿紗細胞有三個UILabels不工作

cell

三個UILabel■找trailingtopbottomleading約束。

  • 這是UILabel名稱擁抱優先級和壓縮性的優先級:

name priority

  • 這是UILabel位置的擁抱優先級和壓縮性的優先級:

location priority

  • 這是UILabel類型的擁抱優先級和壓縮性的優先級:

type priority

viewDidLoad從我UITableViewController我做這樣的事情:

self.tableView.estimatedRowHeight = 80 
self.tableView.rowHeight = UITableViewAutomaticDimension 
self.tableView.reloadData() 

但是當我運行應用程序時,UITableViewCell s 「T自我大小:

result

什麼我做錯了還是什麼,我需要做的,使UITableViewCell奇妝他們的自我大小?

編輯

我設置爲0 numberOfLines每個UILabel,現在所在的位置UILabel不會出現

+0

位置UILabel的垂直擁抱優先級比其他人低1,介意解釋你爲什麼這樣做? –

+0

@ Z.Hung它在另一個項目中爲我工作,但我不知道如何使它在一個新項目中工作 – pableiros

+0

您是否試圖改變擁抱優先級以使它們都一樣? –

回答

1

這是最有可能的,你的文字竟然在運行造成較大的總高度你的單元格視圖要比行高本身更大。

首先等同於所有的擁抱優先級,然後嘗試用關係「大於等於」更改標籤之間的間距,然後設置不變的東西從小喜歡爲零。如果仍然出現約束錯誤,請增加您的tableView行高。

替代方法: 將所有3個UILabels到另一個的UIView與間距零它們之間不設置高度約束這個UIView的,只是將其設置在cellView的centerY從ImageView的

提示間隔:只有改變約束優先,如果你的UI是你想要的約束被打破後,也當然,除非你知道你在做

1

什麼烏爾情況下,沒有必要垂直擁抱優先,只要給

標籤.nu​​mberOfLines = 0

工作正常。

+0

我在所有'UILabel's設置'numberOfLines'爲0,現在沒有出現'UILabel'的位置 – pableiros

0

這個問題說你想調整標籤的大小,但根據你的代碼,你似乎想通過調整tableview行的大小來做到這一點。如果是這樣的話,正確的位置設置行高一的tableView是:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 

    return 80 

} 

當「迴歸80」意味着你要錶行是高度的80請讓我知道,如果我不明白你的問題正確。

+0

這對我來說並不合適,因爲我想'UITableViewCell'將自行調整大小 – pableiros

-1

該標籤不起作用,因爲故事板不是非常有用。

設置var

var imageView: UIImageView ={ 
let image = UIImageView() 
image.translatesAutoresizingMaskIntoConstraints = false 
return image 
}() 

var textView: UITextView ={ 
let text = UITextView() 
text.translatesAutoresizingMaskIntoConstraints = false 
return text 
}() 

你繼續與其他標籤。

必須設置限制這樣的例子:

self.addSubview(imageView) 
self.addSubview(textView) 

imageView.bottomAnchor.constraintEqualToAnchor(self.bottomAnchor, constant: -10).active=true 
imageView.leftAnchor.constraintEqualToAnchor(self.leftAnchor, constant:-10).active=true 
imageView.widthAnchor.constraintEqualToConstant(70).active=true 
imageView.heightAnchor.constraintEqualToConstant(70).active=true 

label.topAnchor.constraintEqualToAnchor(self.topAnchor, constant: -5).active=true 
label.leftAnchor.constraintEqualToAnchor(imageView.rightAnchor, constant: 3).active=true 
label.widthAnchor.constraintEqualToAnchor(self.widthAnchor, constant -70).active=true 
label.heightAnchor.constraintEqualToConstant(30).active=true 

label2.topAnchor.constraintEqualToAnchor(label.bottomAnchor, constant: 5).active=true 
label2.leftAnchor.constraintEqualToAnchor(imageView.rightAnchor, constant: 3).active=true 
label2.widthAnchor.constraintEqualToAnchor(self.widthAnchor, constant -70).active=true 
label2.heightAnchor.constraintEqualToConstant(30).active=true 

而且隨着這種方式也爲第三標籤。

+0

但是我沒有使用任何'UITextView' – pableiros

+0

@pableiros我已經更新了答案,這與標籤是一樣的。 – Carlo