我有一个(可能是错误的)假设,在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吗?
我的两个更新的场景正确吗?我现在明白了吗?
是的,你引用的东西是正确的。此外,我同意这感觉有点倒退,所以出于这个原因,我很欣赏你的文章。
你可能喜欢使用预处理宏uiviewautoresizingflexiblemargin,使一个UIView的边缘在每个方向都是灵活的。我把它放在预编译的头文件中,所以它被包括在任何地方。
#define UIViewAutoresizingFlexibleMargins \
UIViewAutoresizingFlexibleBottomMargin | \
UIViewAutoresizingFlexibleLeftMargin | \
UIViewAutoresizingFlexibleRightMargin | \
UIViewAutoresizingFlexibleTopMargin
使用uiviewautoresizingflexiblemargin将使UI元素保持居中,因为它不会拥抱任何一侧。要使元素随其父元素一起增长/收缩,分别设置UIViewAutoresizingFlexibleWidth和UIViewAutoresizingFlexibleHeight。
我喜欢使用uiviewautoresizingflexiblemargin,因为我可以稍后引用它:
myView.autoresizingMask = UIViewAutoresizingFlexibleMargins;
而不是
myView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;
我经常看到这些边距在一行上,就像上面的例子一样。只是很难读懂。