Ios 如何在横向模式下获得主视图的宽度?
当我使用此代码时:Ios 如何在横向模式下获得主视图的宽度?,ios,uiview,uiviewcontroller,landscape,Ios,Uiview,Uiviewcontroller,Landscape,当我使用此代码时: - (void)viewDidLoad { [super viewDidLoad]; CGFloat mainViewWidth = self.view.bounds.size.width; NSLog(@"%f", mainViewWidth); } 我在模拟器上得到的结果是:480 当我在iPhone4上启动应用程序时,结果是320 我做错什么了吗?试试这个 -(void)didRotateFromInterfaceOrientation:(UI
- (void)viewDidLoad
{
[super viewDidLoad];
CGFloat mainViewWidth = self.view.bounds.size.width;
NSLog(@"%f", mainViewWidth);
}
我在模拟器上得到的结果是:480
当我在iPhone4上启动应用程序时,结果是320
我做错什么了吗?试试这个
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat width = CGRectGetWidth(self.view.bounds);
}
在
视图中执行相同操作将出现
-(void)viewWillAppear:(BOOL)animated{
CGFloat mainViewWidth = self.view.bounds.size.width;
NSLog(@"%f", mainViewWidth);
}
并查看是否得到正确的值<代码>ViewDidLoad
在视图完全绘制之前被调用。访问UIView
size属性会给您带来无法预测的值。Swift 3.1:
let width = yourView.bounds.width
我尝试过使用框架代替边界,但结果仍然不一样。您应该在ViewWillDisplay中使用这段代码,因为无论何时旋转调用都会出现。或者,如果您特别希望登录特定方向,则只需使用布尔值……我希望您能得到它。