ios真空包裹UIView

标签 ios

我的 UIView 内部有动态数量的 View ,并且还有背景颜色。我试图将 UIView 塞入所有项目周围,但它不起作用。

[self sizeToFit] 似乎在 UILabel 上工作得很好,但在 UIView 上却不行。

我知道我可以通过循环所有 subview 来手动计算面积,但这对于这样的事情来说似乎太多了。

我希望有人知道更简单的方法..谢谢

最佳答案

更新

如果您使用自动布局,则可以使容器 View 与其 subview 紧密配合。在容器与其 subview 之间设置约束,并在 subview 与容器的 super View 之间设置约束,但不要在容器与其 super View 之间设置约束。

原版

没有内置支持自动收缩环绕其 subview 的 View 。

sizeToFit该方法的工作原理是发送 [self sizeThatFits:self.bounds.size] ,然后根据 sizeThatFits: 返回的大小调整自身大小.

UILabel覆盖 sizeThatFits:方法来计算其字体中文本的大小。

您需要定制UIView子类化和覆盖sizeThatFits: 。这很简单:

- (CGSize)sizeThatFits:(CGSize)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/

相关文章:

ios - Xcode Obj-C 无法打开输出文件进行写入,架构 x86_64 的 errno=21

ios - 我们如何使用 OpenCV 检测人脸

ios - 快速解析嵌套的 JSON 属性

ios - 无法对自定义对象数组进行排序

ios - 所有符合协议(protocol)的类都继承默认实现

ios - 使用iwatch快速提取心率代码

ios - 我们需要 checkin *.xcuserstate 吗?

ios - 如何从 Swift 3.1 中的 API 创建解析数据(API 以括号开头和结尾)

ios信号量等待不等待

ios - 在没有 NSZombie 的情况下确定 EXC_BAD_ACCESS 的根本原因?