当手机处于纵向时,我有以下设置:
当我将手机旋转到横向时,我希望view1按比例调整自身大小,以便尽可能多地适合屏幕,如下所示:
我知道如何使用代码手动执行此操作,但我想知道是否有某种自动设置我可以放置,因此无论何时手机旋转或每当时,视图都会知道这样做。视图控制器是以横向还是纵向显示?
答案 0 :(得分:2)
你可以:
为您的观点定义autoresizingMask
;或者,
您无需在Interface Builder中或以编程方式指定创建视图的方式。
如果您使用Interface Builder,只需单击您的视图即可。如果您没有使用自动布局,请转到“尺寸检查器”,并以图形方式设置相应的弹簧(参见下图)。
如果使用自动布局,则转到编辑器/引脚并将前导/尾随/顶部/底部空格固定到超级视图。开始时,自动布局可能看起来有点棘手。您可以访问http://www.raywenderlich.com/50317/beginning-auto-layout-tutorial-in-ios-7-part-1查看。
如果以编程方式创建视图,则可以通过设置视图的autoresizingMask
属性或向其添加约束来获得相同的结果。
这是你如何使视图适应其超级视图的界限:
NSDictionary* views = NSDictionaryOfVariableBindings(_subview);
[self.view addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-16-[_subview]-16-|"
options:0
metrics:nil
views:views]];
[self.view addConstraints:
[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_subview]-0-|"
options: 0
metrics:nil
views:views]];
注意我如何指定固定填充(-16-)或根本没有填充(-0 - )。
你可能还需要打电话
self.view.translatesAutoresizingMaskIntoConstraints = NO;
_subview.translatesAutoresizingMaskIntoConstraints = NO;
以避免可能的约束冲突(取决于可以与视图关联的自动调整掩码)。