使用storyboard,我创建了一个项目。
在viewDidLoad
内,我做了:
NSLog(@"%@",self.view.description);
我得到了:
<UIView: 0x8789cb0; frame = (0 20; 320 460); autoresize = RM+BM; layer = <CALayer: 0x8789d50>>
但在另一个XXControllerDelegate方法中,我得到了:
<UIView: 0x8789cb0; frame = (0 0; 320 416); autoresize = RM+BM; layer = <CALayer: 0x8789d50>>
如果我没有选择Resize View From NIB
我总是得到:
frame = (0 0; 320 416)
但我找不到任何地方从NIB重新调整视图。我移动了我的观点?
答案 0 :(得分:1)
您的视图有RM+BM
这些锚点可以将视图y和x位置移动到父视图中,当viewDidLoad
被调用时,superview
从其中获取其大小xib
文件,当调用viewWillAppear
时,视图将调整为superview
如果您希望视图不调整大小,则应移除RM+BM
,检查屏幕截图
删除图像右下方的红色水平和垂直线
答案 1 :(得分:0)
UIView
的框架相对于其所包含的超级视图。
UIView
的边界相对于自己的坐标系。
因此,您需要确定添加视图的位置。