autoresizingMask用于固定边距大小

时间:2010-08-17 18:38:43

标签: iphone ipad layout uiview autoresizingmask

在包含多个子视图的视图中,其中一个子视图应与superview的顶部和底部保持固定的非零距离。在这些图像中,此视图以灰色显示:

Portait

Landscape

根据文档,此视图的掩码应为UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth。但是,这会导致视图扩展其高度以接管整个superview。如何将视图包含在固定但非零的边距中?感谢。

1 个答案:

答案 0 :(得分:2)

UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth应该有用。

但是,当父视图的高度/宽度变小时(当它变为零时一切都会中断),UIView自动调整大小时会出现错误 - 可能只是UIView高度/宽度不能为负。

我在执行initWithFrame时遇到过这个问题:CGRectZero;如果你在self.bounds是CGRectZero(或其他小的)时使用subview.frame = self.bounds之类的东西,也可能会发生这种情况。

我的强力调试方法是覆盖setFrame:和setBounds:来添加NSLog。