题
我已经工作在自动定制的UIView和苹果已经很少在这说。更重要的是,基于SO反馈,苹果的文档在某些领域实际上是错误的。最后,即使有在Interface Builder和六个调整大小部件六项setAutoresizingMask:
他们似乎并不关联的所有事情。例如,在IB设定宽度弹簧具有从旋转设备时autoresizingMask
设置为UIViewAutoresizingFlexibleWidth
不同的效果。
是否有良好的资源,了解在iPhone?
如何调整工作修改强>
我了解基本概念苹果使用诸如contentMode,我已经通过UIView的文档阅读。我在寻找的东西在什么SDK中的可用编程方面更深入的什么IB设置做说明了一点。
解决方案
autoresizingMask
设置为UIViewAutoresizingFlexibleWidth
,相当于设置宽度弹簧,加上左边和在界面生成器右侧支柱(支柱意味着该边缘的不的柔性)。如果你想复制的设置仅宽度春天,而不是左,右支柱的行为,你就必须设置autoresizingMask
到UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin
其他提示
我发现这个职位有助于理解的iOS自动尺寸调整。
http://www.techotopia.com/index.php/IOS_4_iPhone_Rotation,_View_Resizing_and_Layout_Handling
从苹果:
...通过组合中描述的常数指定该掩码的值 使用C位或运算符UIViewAutoresizing。结合这些 常量,可以指定该视图的尺寸要长或 收缩相对于上海华。此属性的默认值 是UIViewAutoresizingNone,这表明该视图不应 在所有的调整大小。
...例如, 假设该物业包括UIViewAutoresizingFlexibleWidth和 UIViewAutoresizingFlexibleRightMargin常量但<强>不包括 的UIViewAutoresizingFlexibleLeftMargin常数,强>因此表明 该视图的左边距的宽度是固定的强>但是视图的 宽度和右边距可以改变。因此,视图显示锚定到 它的父,而左侧两个视图宽度和间隙 到视图增加的右侧。
如果在自动调整行为不提供精确的布局,你 需要你的意见,你可以使用自定义容器视图和覆盖 其layoutSubviews方法来更精确地定位你的子视图。
所以,如果你想定位固定在顶部和它的父的右侧视图,你可能应用像一个面具:
[myView setAutoresizingMask:UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleBottomMargin];
上海华具有这样的参数为 contentMode 和 autoresizesSubviews ,至极所有的 autoresizingMask 它的子视图的尺寸调整使得行为
有关的记录,我划我的头一个小时,因为我的一个行的UILabel只是不会自动调整字体大小以适合宽度。最后,这并获得成功:
label.contentMode = UIViewContentModeScaleAspectFit;
我一派和似乎没有人阐明这个细节(大家告诉您标签应该是1行,集合adjustsFontSizeToFitWidth / minimumFontSize等)。 也许这属性的默认值更改?我在iOS 4.3。