2014-04-24 101 views
0

我有以下設置:a UIView包含UILabelUIButtonUIButton有固定的尺寸(它並不重要)。然而,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); 

但是這改變兩者的高度和視圖的寬度,不保持寬度所需的值。

有沒有一個優雅的方法來做到這一點?

在此先感謝您的幫助?

+0

現在你的代碼無關,支持自動佈局。你在問如何用自動佈局來實現這一點?如果是這樣,你爲什麼發佈該代碼?順便說一句。你將視圖的寬度設置爲'fittingSize.width',並想知道爲什麼它會影響視圖的寬度?你爲什麼不''self.view.frame = CGRectMake(0,0,desiredWidth,fittingSize.height);'' – Tobi

+0

UIView具有自動佈局約束來佈局UILabel和UIButton相對於它們的邊界。 我無法直接設置'desiredWidth',因爲它必須匹配'fittingSize.height'。 (例如,如果'fittingSize.width'非常小,'fittingSize.height'需要超高) – Kamchatka

+0

那麼爲什麼你把它們從我們這裏隱藏起來呢? :P – Tobi

回答

0

在AutoLayout中,您需要爲視圖添加寬度,頂部,底部,前導(左)和/或尾部(右)約束到superview併爲至少頂部和/或底部約束聲明屬性。添加上述約束條件後,您可以通過調整頂部和/或底部約束常數值來更改視圖的高度。

以下是自動佈局指南的鏈接。

Auto Layout Guide: Introduction

相關問題