ios7下的app都是全屏的,意思就是所有控制器的view默认都是从屏幕的(0,0)开始。
@property(nonatomic,assign) UIRectEdge edgesForExtendedLayout NS_AVAILABLE_IOS(7_0); // Defaults to UIRectEdgeAll
属性edgesForExtendedLayout,意思大概是边缘向四周展开
属性edgesForExtendedLayout 值是结构体,默认值是 UIRectEdgeAll,
也就是说,当一个控制器要往父控制器添加的时候,上下左右填充满整个屏幕。
[greenView mas_makeConstraints:^(MASConstraintMaker *make) {
make.top.equalTo(self.view.mas_top).offset(10);
make.left.equalTo(self.view.mas_left).offset(10);
make.bottom.equalTo(blueView.mas_top).offset(-10);
make.right.equalTo(redView.mas_left).offset(-10);
make.width.equalTo(redView.mas_width);
make.height.equalTo(@[redView, blueView]);
}];
UIView *greenView = [[UIView alloc] init];
greenView.backgroundColor = [UIColor greenColor];
greenView.layer.borderColor = [UIColor blackColor].CGColor;
greenView.layer.borderWidth = 2.0;
[self.view addSubview:greenView];
self.view
frame = (0 0; 375 667)
greenView计算距离self.view顶部的偏移量
make.top.equalTo(self.view.mas_top).offset(10);
默认值是 UIRectEdgeAll,可以从图片中看到,greenView的位置是在
导航栏的上方的, greenView计算距离self.view顶部的偏移量的相对位置是从屏幕的(0,0)开始。
================================
当设置self.edgesForExtendedLayout = UIRectEdgeNone;
greenView计算距离self.view顶部的偏移量是相对于导航栏底部为起始位置的也就是状态栏的高度 + 导航栏的高度 (0, 64)的位置开始的
@property(nonatomic,assign) BOOL extendedLayoutIncludesOpaqueBars NS_AVAILABLE_IOS(7_0); // Defaults to NO, but bars are translucent by default on 7_0.
@property(nonatomic,assign) BOOL automaticallyAdjustsScrollViewInsets NS_AVAILABLE_IOS(7_0); // Defaults to YES
转载:
http://www.cnblogs.com/wangxiaofeinin/p/3532831.html?utm_source=tuicool&utm_medium=referral