0
我有以下設置:a UIView
包含UILabel
和UIButton
。 UIButton
有固定的尺寸(它並不重要)。然而,UILabel
受到視圖邊界的限制。如何使用AutoLayout配置視圖寬度固定寬度和可變高度
我希望能夠設置UIView
的寬度,並且應該自動調整其自身的大小,使其高度可以使整個標籤內容可見。
我曾嘗試以下:
self.view.frame = CGRectMake(0, 0, desiredWidth, 0);
CGSize fittingSize = [self.view systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
self.view.frame = CGRectMake(0, 0, fittingSize.width, fittingSize.height);
但是這改變兩者的高度和視圖的寬度,不保持寬度所需的值。
有沒有一個優雅的方法來做到這一點?
在此先感謝您的幫助?
現在你的代碼無關,支持自動佈局。你在問如何用自動佈局來實現這一點?如果是這樣,你爲什麼發佈該代碼?順便說一句。你將視圖的寬度設置爲'fittingSize.width',並想知道爲什麼它會影響視圖的寬度?你爲什麼不''self.view.frame = CGRectMake(0,0,desiredWidth,fittingSize.height);'' – Tobi
UIView具有自動佈局約束來佈局UILabel和UIButton相對於它們的邊界。 我無法直接設置'desiredWidth',因爲它必須匹配'fittingSize.height'。 (例如,如果'fittingSize.width'非常小,'fittingSize.height'需要超高) – Kamchatka
那麼爲什麼你把它們從我們這裏隱藏起來呢? :P – Tobi