繁体   English   中英

ios:更改方向后,UIView的宽度和高度不正确?

[英]ios: UIView's width and height after changing orientations is inaccurate?

我试图确保即使更改方向后,我的自定义UIView始终位于屏幕中央。

所以我试图用UIView的超级视图做一些数学运算,这是程序的主视图(因此它占据了整个屏幕)。

我注意到在方向更改后打印出超级视图的框架的宽度和高度时,它的宽度和高度在第一次旋转后就没有改变,这不是我以后期望的。

出乎意料的是,当设备处于纵向模式时,宽度= 480,高度=320。当设备处于横向模式时,宽度= 320,高度= 480。

我从这些数字得到:

CGRect sFrame = [self superview].frame;
NSLog(@"width = %f, height = %f", sFrame.size.width, sFrame.size.height);

这是在我的自定义UIView中。

超级视图的框架不会自动更新吗? 如果没有,我应该在哪里获得准确的宽度和高度? 有一个更好的方法吗?

非常感谢你!

使用autoresizingMask

view.center = view.superview.center;
view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |  UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;

那么您不必再编写任何代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM