我的 UIView 内部有动态数量的 View ,并且还具有背景颜色。我正在尝试将 UIView 塞入所有项目中,但它不起作用。
[self sizeToFit]
似乎在 UILabel 上工作得很好,但在 UIView 上却不行。
我知道我可以通过循环遍历所有 subview 来手动计算面积,但这对于这样的事情来说似乎工作量太大了。
我希望有人知道更简单的方法.. 谢谢
如果您使用自动布局,您可以使容器 View 紧贴其 subview 。在你的容器和它的 subview 之间设置约束,在 subview 和容器的父 View 之间设置约束,但是不要在容器和它的父 View 之间设置约束。
没有内置支持自动将 View 包裹在其 subview 周围。
sizeToFit
方法的工作原理是发送 [self sizeThatFits:self.bounds.size]
,然后根据 sizeThatFits 返回的大小调整自身大小:
.
UILabel
覆盖 sizeThatFits:
方法以计算其字体中文本的大小。
您需要创建一个自定义 UIView
子类并覆盖 sizeThatFits:
。很简单:
- (CGSize)sizeThatFitsCGSize)size {
CGRect rect = CGRectZero;
for (UIView *subview in self.subviews)
rect = CGRectUnion(rect, subview.frame);
return rect.size;
}
关于ios 真空包装 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9542586/
欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) | Powered by Discuz! X3.4 |