2015-08-28 33 views
9

我是一位嘗試在Swift中學習iOS開發的Android開發人員。我想知道如何在Xcode中實現「wrap_content」。有任何想法嗎?屬性檢查器中的變量有哪些?如何在iOS中執行「wrap_content」(Android XML語法)Swift

,根據它適合的TextView的框架
+0

如果你指的是文本換行到下一行,那麼假設你有一個'UILabel * myLabel',那麼你可以執行'myLabel.numberOfLines = 0;'和'myLabel.lineBreakMode = NSLineBreakByWordWrapping;' – Zhang

+0

找到解決辦法? –

回答

4

嘗試以下Code的包含數據 -

let fixedWidth = textView.frame.size.width 
textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) 
let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.max)) 
var newFrame = textView.frame 
newFrame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height) 
textView.frame = newFrame; 
+0

爲UILabel和UIButton做這個工作嗎? – andy7586

3

Android docs狀態wrap_content

告訴您的視圖大小本身到其內容所需的尺寸。

這聽起來與蘋果所說的intrinsic content size類似。他們詳細說明如何在屬性檢查器here中對其進行配置。


要覆蓋UIView(如UILabelUIButton)的固有內容大小,只需將要重寫UIView's intrinsicContentSize() method。在屬性

+0

如果我只想創建高度wrap_content(內容內容大小),我該怎麼辦?順便說一句,我在Swift中寫這篇文章。 – andy7586

+0

@ andy7586你必須明白*內在內容的大小*是一個元素(比如'UIButton')自然想要的大小。對於一個按鈕,這將基於標籤的字體大小(假設你已經設置了標題)和'titleEdgeInsets' - 實質上是文本和按鈕之間的填充。因此,爲了調整按鈕的固有內容*高度*,您可以更改字體大小或修改'titleEdgeInsets'。這個,或者是在你自己的自定義類中重寫'intrinsicContentSize()'方法的'UIButton',改變高度。 – pxlshpr

+2

您的鏈接**他們詳細介紹瞭如何在屬性檢查器中對其進行配置。**已停用 –

1

u能在故事板

  1. 爲此,選擇了UIView *
  2. 督察選擇換行符
  3. 選擇自動換行

確保爲視圖定義沒有其他約束這限制了寬度!

+6

這僅適用於文本,Android上的wrap_content適用於所有視圖元素。 –