我有一个包含一个 subview 的 View ;该 subview 本身包含另一个 subview ,该 subview 比其父 View 稍小。
我正在创建第一个 subview 全屏尺寸,然后将其缩小到屏幕上非常小的尺寸。当 subview 被点击时,我将其从小尺寸变为全屏。
问题是我的第二个 subview 在此动画期间永远不会调整自身大小 - 它始终呈现全尺寸并溢出其 super View 的边界。
有没有一种简单的方法可以让 subview 在其父 View 改变大小时按比例保持其自身大小?
最佳答案
您可以通过编程方式添加自动调整大小行为
Objective-C
subview.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
Swift 3.x
subview.autoresizingMask = [.flexibleWidth, .flexibleHeight]
Swift 2.x
subview.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
在 Interface-Builder 中导航到选项卡 3 并单击中间的箭头 ;D
另一个解决方法可能是实现 setFrame 方法并始终使其适应 super View 的大小(而不是给定的frame.size)。不要忘记根据需要设置源。
- (void) setFrame:(CGRect)frame
{
CGRect rect = self.superview.frame;
rect.origin.x = 0;
rect.origin.y = 0;
[super setFrame:rect];
}
关于iphone - 如何使 subview 随其父 View 自动调整大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473580/