簡體   English   中英

將自動布局與動態UITextView,UIImageView和UILabel Heights一起使用

[英]Using Auto Layout with Dynamic UITextView, UIImageView, and UILabel Heights

我正在嘗試創建一個包含一個帶有2個標簽和文本視圖的圖像視圖的視圖。 每個元素的內容將從SQLite數據庫中讀取,因此我想使用Xcode 5的自動布局根據每個UI的內容更改每個UI元素的高度和它們之間的距離,以有效地利用屏幕空間盡可能。 我在嘗試通過界面生成器中的自動布局來強制執行一些條件,但是我不確定如何實現它們:

  • 標簽與其正下方的文本視圖之間的距離將保持不變
  • 所有元素的寬度將保持不變,並且將全部水平居中
  • 只有元素框架的高度和y值會改變
  • 如果文本視圖的內容高度超過可以顯示的屏幕高度,則應將圖像視圖的高度減小到最小值,然后減小文本視圖的高度
  • 每個元素之間的距離應相等(不包括相關標簽和文本視圖之間的距離)

我可以通過編程方式完成所有這些操作,但是我想使用自動布局,以便視圖可以輕松適應屏幕尺寸的變化並防止錯誤。 我對自動版面設計的經驗很少,在這種情況下我遇到的復雜規格困擾。 為了使我打算更清楚地創建內容,這是.xib文件的屏幕截圖:

截圖

謝謝您的幫助!

看一下自動布局視覺格式語言 他們在去年的一些自動布局WWDC視頻中談到了這一點。

這還不完整,但是您將需要在垂直和水平方向上定義約束。 這是完整的,但希望給您一個起步的想法,讓您開始。

 // Vertical alignment should be centered
 NSArray *constraints = [NSLayoutConstraint
  constraintsWithVisualFormat:@"V:|[_imageView]-[_label1]-[_textBlock1]-[label2]-[textBlock2]-|"
                      options:NSLayoutFormatAlignAllCenterY
                      metrics:nil
                      views:viewsDictionary];

// Tell the views/text blocks to take the entire width. The labels will be fine centered on them I think
NSArray *constraints = [NSLayoutConstraint
  constraintsWithVisualFormat:@"H:|-[_imageView]-|"
                      options:NSLayoutFormatAlignAllCenterY
                      metrics:nil
                      views:viewsDictionary];

NSArray *constraints = [NSLayoutConstraint
  constraintsWithVisualFormat:@"H:|-[_textBlock1]-|"
                      options:nil
                      metrics:nil
                      views:viewsDictionary];

NSArray *constraints = [NSLayoutConstraint
  constraintsWithVisualFormat:@"H:|-[_textBlock2]-|"
                      options:nil
                      metrics:nil
                      views:viewsDictionary];                 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM