为了账号安全,请及时绑定邮箱和手机立即绑定

以编程方式对Interface Builder / xib / nib自动调整掩码

以编程方式对Interface Builder / xib / nib自动调整掩码

iOS
函数式编程 2019-07-31 14:30:34
以编程方式对Interface Builder / xib / nib自动调整掩码我在(可能是错误的)假设中,在xib中启用右边距指示符等同于使用UIViewAutoresizingFlexibleLeftMargin内部代码等等。所以,我曾经根据这个快照思考: 今天晚些时候我不得不交叉检查,偶然发现了这个帖子。还有苹果文档,标题为标题部分 - “使用自动调整规则自动处理布局更改”链接:https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/ CreatingViews.html所以我现在脑子里有一个更新的概念,关于如何以编程方式设置自动调整掩码等同于xib设置:场景1:仅设置(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)相当于:在XIB?场景2:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)代码设置相当于:在XIB?我的2个更新方案是否正确?我现在理解了吗?
查看完整描述

3 回答

?
慕姐4208626

TA贡献1852条经验 获得超7个赞

是的,Interface Builder在某种意义上使它“逆转”(或UIView,取决于你如何看待它)。您引用的“情景”是正确的。


查看完整回答
反对 回复 2019-07-31
?
皈依舞

TA贡献1851条经验 获得超3个赞

是的,你已正确引用了一些东西。此外,我同意它感觉有点倒退,所以为此我感谢你的帖子。


UIViewAutoresizingFlexibleMargins在使UIView的边距在各个方向都灵活时,您可能会喜欢使用预处理器宏。我把它放在预编译的头文件中,所以它包含在任何地方。


#define UIViewAutoresizingFlexibleMargins                 \

              UIViewAutoresizingFlexibleBottomMargin    | \

              UIViewAutoresizingFlexibleLeftMargin      | \

              UIViewAutoresizingFlexibleRightMargin     | \

              UIViewAutoresizingFlexibleTopMargin

使用UIViewAutoresizingFlexibleMargins将使UI元素保持居中,因为它不会拥抱任何一方。要使元素与其父元素一起增长/缩小UIViewAutoresizingFlexibleWidth,请UIViewAutoresizingFlexibleHeight分别设置和。


我喜欢使用UIViewAutoresizingFlexibleMargins因为我可以稍后引用它:


myView.autoresizingMask = UIViewAutoresizingFlexibleMargins;

代替


myView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;

通常我会看到这些边距在一行上或者像上面的例子一样。只是很难读。


查看完整回答
反对 回复 2019-07-31
?
哔哔one

TA贡献1854条经验 获得超8个赞

在框内启用垂直/水平箭头(称为弹簧)将使高度/宽度变得灵活。但启用外线(称为支柱)将使该侧不灵活/不灵活。

启用左外侧线(左侧支柱)不等于启用UIViewAutoresizingFlexibleRightMargin。相反,UIViewAutoresizingFlexibleRightMargin如果右支撑禁用,关闭如果启用右支撑。

起初它很混乱,但如果仔细观察,弹簧和支柱就会有所不同。我不知道Apple为什么会这样做,但对我来说,有些情况下它更容易使用。在代码中使用相反的属性更加令人困惑。


查看完整回答
反对 回复 2019-07-31
  • 3 回答
  • 0 关注
  • 476 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信