iPad框架宽度和高度混合在风景中

时间:2010-09-04 09:45:59

标签: iphone objective-c ipad orientation

我已经完成了这个问题所说的内容:Landscape Mode ONLY for iPhone or iPad

但是view.frame.size.height仍然是1024,这是设备处于纵向时的高度,当界面旋转宽度和高度切换值时肯定是这样吗?

(假设你想将屏幕拆分为3个视图,对于横向和纵向的应用程序,并且你做了view.frame.size.width / 3,在横向上作为宽度值不正确实际上不是宽度)

我确信在iPhone上有宽度和高度开关,为什么不在iPad上呢?


这让我再次感到震惊,我也没有使用笔尖,有人可以给出一个可接受的答案吗? (即不涉及手动切换宽度和高度的那个)

一旦奖金被授予答案,我将开始另一笔250美元的赏金并将其奖励给同一个人。

2 个答案:

答案 0 :(得分:24)

您尚未指定要查询的“视图”。假设这是窗口的顶级子视图:

您应该查看视图的bounds而不是frameframe位于定义视图的坐标(外部世界)中,因此在旋转时可以保持不变。 bounds是在视图内部及其子视图中使用的坐标。旋转时会发生这种情况。

答案 1 :(得分:2)

+ (int) currentWidth
{
 UIScreen *screen = [UIScreen mainScreen];
 int width = screen.currentMode.size.width;
 int height = screen.currentMode.size.height;
 return (UIDeviceOrientationIsLandscape([[UIApplication sharedApplication] statusBarOrientation]))? MAX (width, height) : MIN (width, height);
}

我花了一些时间试图找出一个令人沮丧的问题的最简单的解决方案,这是我能想到的最好的解决方案。希望它可以提供帮助。