我必须以编程方式为UIView
设置autoresizingMask。
我不知道如何实现这个。
答案 0 :(得分:83)
要实现屏幕截图中的所需,您需要做与DrummerB建议相反的操作。你想要一个固定的上边距,这样你就可以让每一方都灵活:
目标C:
view.autoresizingMask = UIViewAutoresizingFlexibleRightMargin |
UIViewAutoresizingFlexibleLeftMargin |
UIViewAutoresizingFlexibleBottomMargin;
没有将一方设置为灵活意味着它将被修复(默认行为),这就是为什么没有UIViewAutoResizingFixedTopMargin这样的东西(因为它与未设置UIViewAutoresizingFlexibleTopMargin相同)
编辑Swift:
view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin]
感谢Tom Calmon添加swift版本1st。
干杯。
答案 1 :(得分:23)
您必须设置视图的autoresizingMask
属性:
view.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;
可能的值在UIViewAutoresizing
:
enum {
UIViewAutoresizingNone = 0,
UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
UIViewAutoresizingFlexibleWidth = 1 << 1,
UIViewAutoresizingFlexibleRightMargin = 1 << 2,
UIViewAutoresizingFlexibleTopMargin = 1 << 3,
UIViewAutoresizingFlexibleHeight = 1 << 4,
UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};
typedef NSUInteger UIViewAutoresizing;
您可以使用按位OR运算符|
设置多个值。
答案 2 :(得分:21)
Swift 2.0:
view.autoresizingMask = [.FlexibleRightMargin, .FlexibleLeftMargin, .FlexibleBottomMargin]
答案 3 :(得分:3)
Swift 4.1:
view.autoresizingMask = [.flexibleHeight, .flexibleWidth, .flexibleTopMargin, .flexibleRightMargin, .flexibleLeftMargin, .flexibleBottomMargin]
答案 4 :(得分:0)
要设置UIView的灵活上边距,下边距,左边距和右边距,请编写以下代码 -
autoresizingMask=UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin;