簡體   English   中英

根據內容自動增加視圖的高度

[英]Automatically Grow a View's Height Based on It's Content

情況

我有一個(垂直) UIStackView包含一個高度為50的普通UIView (稱為sliderView ),又包含一個在故事板中定義的高度為36UILabel 標簽的alpha屬性最初設置為0.0 ,以使其不可見。

在控制器的viewDidLoad我使用UIViewController Containment將另一個視圖控制器的視圖添加為sliderView的子視圖。 此新子視圖不一定與sliderViews高度匹配。 實際上可能更高。

首先,此設置看起來不錯。 使標簽可見后,我看到它仍然從50的y位置開始。 因此, sliderView不會自動拉伸以使用其新孩子的身高。 說得通。

我以為我可以輕松地在sizeToFit上調用sliderView來使這兩個高度合適。 不幸的是,這似乎不起作用。 我在這里誤會什么嗎? 謝謝!

使用以下方法獲取NSString文本所需的CGSize

- (CGSize)getHeightForText:(NSString *)text havingWidth:(CGFloat)widthValue andFont:(UIFont *)font {
CGSize size = CGSizeZero;
if (text) {
    CGRect frame = [text boundingRectWithSize:CGSizeMake(widthValue, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{ NSFontAttributeName:font } context:nil];
    size = CGSizeMake(frame.size.width, frame.size.height+20.0f);
}
return size;
}

在這里, width參數是label的寬度,而font是為label指定的字體。 調用CGSize.height獲取高度。

暫無
暫無

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

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