2016-11-26 60 views
0

我有一個單元格xib,並且標籤列在另一個下面。這是細胞xib的圖片。 enter image description here根據上標籤內容將標籤向下移動的自動佈局約束條件

基於「地址詳細資料」的內容,即特定的標籤將擴大,因此,我要向下移動它下面的標籤,這些標籤聯繫,聯繫方式,IFSC和MICR相關標籤。

我沒有爲分支名稱標籤和地址詳細信息標籤添加一些約束。如果我將頂部空間和底部空間限制優先級設置爲500,那麼我會看到所有標籤的內容都被混亂了。但是,如果我將優先級設置爲1000,則所有標籤都會顯示,但「地址詳細信息」標籤不會根據其內容進行擴展。

擴大的標籤,我使用

label.numberOfLines = 0; 
label.text = addressDetails; 
[label sizeToFit]; 

產品圖與優先級設置爲500: enter image description here

產品圖與優先級設置爲1000: enter image description here

我從來沒有在這裏發佈任何自動佈局相關的問題。我不確定我發佈的信息是否足以滿足我的問題,但需要其他信息,請讓我知道。

在此先感謝!

+0

爲什麼你有身高限制?優先級1000是否會收到有關衝突約束的警告? – Paulw11

+0

@ Paulw11 - 我沒有得到與此衝突的約束。我是當它= 32,所以,因爲它可以擴大,我做到> = 32. –

+0

我說的是你應該沒有高度約束 – Paulw11

回答

0

您應該重置約束這樣的..在Address Detail Label Add Top, Leading and trailing約束,讓UILabel根據內容調整大小(不加高度約束)。

現在將這些約束添加到Address Label - >(Top = Address Detail Label Top, Give Height Constraint and Leading and trailing)。

非常接下來的兩個標籤ContactContact Detail Label必須不低於Address Label下面Address detail label地方。

現在heightForRowAtIndexPath應該返回UITableViewAutomaticDimension

現在點擊運行按鈕並測試它是否適合您。

0

鍵將底部約束添加到單元格中的最後一個元素,並將estimatedRowHeight設置爲tableviewcell和rowheight的高度爲UITableViewAutomaticDimension。無需設置高度約束或實現heightForRowAtIndexPath

對於約束:
1.首先在tableview單元格中設置分支標籤的頂部前導空格和尾部空格。
2.然後對齊分支,地址,聯繫人標籤的前沿。
3.然後對齊分支,地址值和聯繫人值標籤的尾部邊緣。
4.對齊地址值和接觸值標籤的前緣。
5.然後對齊地址和地址值的垂直中心。類似的聯繫和聯繫價值。
6.然後將頂部空間約束添加到地址值標籤,並聯系值標籤。
7.將寬度約束添加到地址標籤。
8.記下細胞高度,說它的x。將表格行高度設置爲x。

這應該完成您的一般約束條件。

現在有擴大標籤:

  • 添加底部約束到接觸值標籤(無論是底最標籤)。
  • 然後在viewDidLoad中,設置rowHeight和估計行的高度:

    self.tableView.estimatedRowHeight = x; 
    self.tableView.rowHeight = UITableViewAutomaticDimension; 
    
  • 對於地址值標籤,行0的設置數,並換行符到自動換行。 enter image description here

    +0

    現在爲了使它的工作,我更新了優先級爲750而不是500或1000,這有所幫助。我會試試這個,並會讓你知道。謝謝! –