如何获取UIView的正确大小?
我正在创建CGRect以显示使用平铺图层的一些图像。 当我创建CGRect时,我基本上需要它与我的UIView具有完全相同的大小。这原来是很难.. 当我NSLog()我的mainView.bounds.size.width
或我的mainView.frame.size.width
他们总是错误的,当在风景!尽管我可以看到实际的视图更宽,但他们总是将这些值注释为纵向。扭转它们也是错误的。 将横向设置为高度并不够好,反之亦然,我需要正确的值。
我已经能够使它看起来正确的是手动将在1024宽度时,在景观的唯一途径,而这并不总是工作,要么,因为:
问题2:
什么是正确的方法来检查设备是否在横向或不横向?
我一直在使用
if([UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeLeft || [UIDevice currentDevice].orientation == UIDeviceOrientationLandscapeRight)
但是这并不总是工作。如果我在启动时将设备放在横向模式下,这是正确的,但是如果我将其设置为横向,然后将iPad平放在仪表板上并将其放置在横向位置,然后启动它,然后显示横向飞溅,但该代码认为它是肖像的。 代码不为iPad模拟器要么..
编辑
出于某种原因,在所有的工作,当我决定增加对横向的支持,这是不够的,只是查景观-orientations目标的摘要页,我不得不实际子类的我的TabBarController和身体告诉它与
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return YES;
}
旋转我不应该这样做..好吗?如果我创建一个像这样的空项目,它不需要它..我不知道为什么。
我记得有问题,就是这样的,当我把一个标签栏控制器,导航控制器内(不支持的配置苹果公司说,不执行)。这是你正在做什么的机会? – lnafziger
@lnafziger不,但有些时候我在tabBarController里面有navigationControllers,但是这也不应该是问题.. – Sti
是的,这是完全可以接受的....也许你可以上传你的应用程序,或者更好的一个小版本您的应用程序展示了这种行为,以便我们可以更仔细地查看它。 – lnafziger