我有一个项目,我在XCode 4中创建,在iPad和iPhone上运行。当显示旋转时,我想知道最好的方法是让控件旋转。我的一些图像和控件需要改变,以支持不同的方向。iPad和iPhone的方向问题
理想情况下,我想有一个单独的笔尖文件,但我不知道如何切换视图。我知道我可以通过UIInterfaceOrientation等获得方向,但因为我是iDevelopment的新手,所以我不确定最好的方法来做到这一点。
任何意见和/或例子将有所帮助!
感谢, 你可能已经知道托尼
我有一个项目,我在XCode 4中创建,在iPad和iPhone上运行。当显示旋转时,我想知道最好的方法是让控件旋转。我的一些图像和控件需要改变,以支持不同的方向。iPad和iPhone的方向问题
理想情况下,我想有一个单独的笔尖文件,但我不知道如何切换视图。我知道我可以通过UIInterfaceOrientation等获得方向,但因为我是iDevelopment的新手,所以我不确定最好的方法来做到这一点。
任何意见和/或例子将有所帮助!
感谢, 你可能已经知道托尼
件事:做尽可能多的,你可以使用自动调整大小面具。在理想的世界里,你会尽全力与他们做一切。尽管不难想到控制器的例子,你想要更多的控制权,而且你明显拥有控制权。在代码方面,显而易见的是执行shouldAutorotateToInterfaceOrientation
并确保返回支持方向的“是”。
除此之外,你想要实现的主要是- willAnimateRotationToInterfaceOrientation:duration:。这将在视图旋转时在一个动画块中调用,并且在您以前不在之前的方向进入视图控制器时将用于立即生效。重新定位和/或改变您的视图,并根据需要获得适当的动画过渡。出于体面动画的目的,重新配置一个视图而不是从一个视图切换到另一个视图要好得多。
从一个项目,我已削减了(并重新格式化为薄文本区域位置上的StackOverflow)的示例代码:
- (void)willAnimateRotationToInterfaceOrientation:
(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration
{
if(UIInterfaceOrientationIsPortrait(toInterfaceOrientation))
{
nameField.frame = CGRectMake(75, 107, 225, 31);
nameLabel.frame = CGRectMake(20, 107, 47, 32);
URLField.frame = CGRectMake(75, 145, 225, 31);
URLLabel.frame = CGRectMake(20, 145, 47, 32);
}
else
{
nameField.frame = CGRectMake(75, 107, 155, 31);
nameLabel.frame = CGRectMake(20, 107, 47, 32);
URLLabel.frame = CGRectMake(250, 107, 35, 32);
URLField.frame = CGRectMake(293, 107, 167, 31);
}
}
类出口连接到一对夫妇的标签和文本字段,允许用户输入一个名字和一个URL。该代码的作用是视图根据横向或纵向从一列切换到两列。
这是一个必须硬编码的绑定,但我还没有找到更好的方法。如果您不担心动画混洗,更直观的方法可能是在NIB中分别设置两个视图,并在出现瞬间时添加/删除相关视图。
嗯,这听起来不错...我可以definetly使用你上面描述的功能和重新定位我的控制,但我确实有一个图像的背景;问题 - 我该怎么做?我在两个方向都有一个图像,但我该如何去切换它们?而且,这是否搞乱了动画呢?谢谢你的帮助!!! – LilMoke 2011-03-30 19:27:22
如果您设置的属性不是可设置的(根据CoreGraphics的含义),那么它将立即生效,而不考虑任何其他因素。一个想法是让这两个图像成为你视图的一部分,正确定位它们各自的方向,并通过设置其alpha属性为0或1来启用/禁用前者,因为这是可动画的。这应该会给你一个褪色。 – Tommy 2011-03-30 19:31:16
非常酷!我会试一试!谢谢!! – LilMoke 2011-03-30 20:48:04