繁体   English   中英

转换iPad应用程序以处理两种视图模式的最佳方法是什么?

[英]What's the best way to convert iPad app to handle both view modes?

我有一个现有的iPad应用程序(XCode 4.6,iOS 6.2,ARC和情节提要)。 目前,它仅在App Store中处于纵向模式; 我对横向模式有一些要求。 不幸的是,所有的线等都是使用CG方法绘制的,并且受到数学控制。 这是纵向模式下的样子:

纵向模式

这就是横向模式下的样子:

横向模式

我的问题是:在知道绘图是数学控制的情况下,在哪里可以找到一些好文档,为我提供将两种模式转换为该应用所需的基本步骤?

如果以数学方式进行控制,则最好的方法是将所有坐标引用到父视图的尺寸,尤其是引用随设备旋转而变化的属性self.view.bounds。

然后,当方向更改后,您必须重新绘制界面。 一个好的方法是在方法内部:

-(void)viewWillLayoutSubviews

如果过去使用CG方法进行过一些自定义视图,则最好的方法是将所有内容都引用到边界。 这样,当您通过旋转屏幕或在iPhone上使用它来更改屏幕尺寸时,它无需修改即可工作。

更新想象一下,您在(76.8,512.0)处的点正好是iPad和纵向方向,宽度为10%,高度为50%。 因此,对于每一对坐标,而不是将它们与绝对数字一起使用,您必须将其替换为父视图尺寸的分数:

// old drawing method
CGPoint oldPoint = CGPointMake(76.8, 512.0);

// new drawing method
CGFloat W = self.view.bounds.size.width;
CGFloat H = self.view.bounds.size.height; 
CGPoint newPoint = CGPointMake(0.1 * W, 0.5 * H)  // 76.8 = 0.1 * 768; 512 = 0.5 * 1024

在第二种情况下; 当更改方向时,边界也会更改,并且坐标将获得新值,但是比例将与其他方向相同,水平方向为10%,垂直方向为50%。

你明白了。

暂无
暂无

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

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