gpt4 book ai didi

iphone - 在横向模式下报告不正确的边界

转载 作者:太空狗 更新时间:2023-10-30 03:11:19 25 4
gpt4 key购买 nike

我在 iPad 应用程序中遇到横向模式问题。

我创建了一个非常小的新项目来展示我的问题我将 pList 中的 UIInterfaceOrientation 设置为 UIInterfaceOrientationLandscapeRight

在应用委托(delegate)中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
[self.window makeKeyAndVisible];
MyController *myController = [[MyController alloc] init];
[self.window addSubview:myController.view];

return YES;
}

在我的 Controller 中

- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSLog(@"Bounds Height:%f %f", self.view.bounds.size.height, self.view.bounds.size.width);
}

我也试过将它放在 viewDidLoad 中,结果相同

如果我在横向握持设备时启动应用程序,NSLog 输出

Bounds Height: 1004.000000 Bounds Width: 768.000000

我需要做什么才能获得正确的结果?我是这个 iOS 编程的新手,我想做的就是将 UISlider 锚定到屏幕底部,但是当我得到不正确的坐标时,我不确定该怎么做。

最佳答案

我认为这里没有回答原始问题,因为我遇到了同样的问题。

这里的关键是,如果模拟器/设备处于横向模式,然后启动程序,self.view.(frame or bounds) 会检索纵向高度和宽度。如果您的程序已经在运行,然后旋转它会给出正确的值。这仅在设备以横向启动且未旋转时发生。

有没有其他人找到解决方案或知道我做错了什么?请谢谢。

可能的解决方案

我之前一直从 viewDidLoad 方法调用我的方法。事实证明, View 仍在转换。我从 viewDidAppear 调用我的函数时运气更好,它是在一切完成后调用的。

希望对您有所帮助。

关于iphone - 在横向模式下报告不正确的边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com