Ios 自动增长视图';s基于它的高度';内容 处境
我有一个(垂直)Ios 自动增长视图';s基于它的高度';内容 处境,ios,iphone,swift,uiview,uistackview,Ios,Iphone,Swift,Uiview,Uistackview,我有一个(垂直)UIStackView包含一个高度50的普通UIView(名为sliderView)和一个高度36的UILabel。标签的alpha属性最初设置为0.0,以使其不可见 在控制器的viewdiload中,我使用UIViewController包容将另一个视图控制器的视图添加到,作为sliderView的子视图。这个新的子视图不一定匹配sliderViewsheight。它实际上可能会稍微高一点 首先,这个设置看起来不错。一旦我使标签可见,我看到它仍然从y位置50开始。因此,slid
UIStackView
包含一个高度50
的普通UIView
(名为sliderView
)和一个高度36
的UILabel
。标签的alpha
属性最初设置为0.0
,以使其不可见
在控制器的viewdiload
中,我使用UIViewController包容将另一个视图控制器的视图添加到,作为sliderView
的子视图。这个新的子视图不一定匹配sliderViews
height。它实际上可能会稍微高一点
首先,这个设置看起来不错。一旦我使标签可见,我看到它仍然从y位置50
开始。因此,sliderView
没有自动拉伸以使用新孩子的身高。有道理
问题:
我想我可以轻松地在
sliderView
上调用sizeToFit
,使这两个高度匹配。不幸的是,这似乎不起作用。我是不是误解了什么?谢谢 使用以下方法获取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
参数是标签的宽度
,font
是为标签指定的字体。致电CGSize.height
获取高度。好吧,谢谢你的回复,但这不是我想要的。标签很好。我需要调整幻灯片视图的大小。