在iPhone上,当手动将子视图添加到窗口视图时,我是否需要自己考虑顶级状态栏的20px ?也就是说,我是否需要创建一个框架设置为(0,20,320,460)的视图:
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0, 20, 320, 460)];
[window addSubview:myView];
如果是的话,是否有一些与此相关的官方指南?我只是坚持下去,经过一些实验后,似乎确实如此。这意味着当从nib文件创建视图时,它总是默默地向下移动20个像素,因为当使用Interface Builder时,视图高度已经设置为460px,并且当视图添加到窗口时,它已经正确地定位。
另一方面,这看起来有点笨拙和短视。为什么Apple会对20像素进行硬编码并进行魔法补偿?作为一名程序员,为什么我需要知道并假设有关状态栏的任何信息?为什么窗户本身没有偏移?这是一个已知的限制/问题吗?或者它有原因吗?
答案 0 :(得分:0)
设置视图帧时,通常不会。
状态栏有效缩小画布。
现在,我已经看到了一些奇怪的例外情况,但在进行基本的界面工作时,没有一个是相关的。