iPhone自动旋转:将旋转动画替换为淡入/淡出?

iPhone自动旋转:将旋转动画替换为淡入/淡出?,iphone,view,rotation,Iphone,View,Rotation,以前有人问过一个问题,但我很想知道iPhone SDK的自动旋转功能是否允许我们用另一个过渡(如淡入/淡出)来替换旋转动画。对于模态视图,我们可以设置modalTransitionStyle,但autorotate没有这样的属性 如果我不能利用内置功能,我还能如何实现此功能?文档中有WillAnimateRotationInterfaceOrientation:duration:method: 默认实现 这种方法没有任何作用。如果你 如果重写此方法,则不应 覆盖 WillAnimateFirst

以前有人问过一个问题,但我很想知道iPhone SDK的自动旋转功能是否允许我们用另一个过渡(如淡入/淡出)来替换旋转动画。对于模态视图,我们可以设置modalTransitionStyle,但autorotate没有这样的属性

如果我不能利用内置功能,我还能如何实现此功能?

文档中有WillAnimateRotationInterfaceOrientation:duration:method:

默认实现 这种方法没有任何作用。如果你 如果重写此方法,则不应 覆盖 WillAnimateFirstalFofrotationInterfaceOrientation:持续时间: 或 WillAnimateSecondhalf of RotationfromInterfaceOrientation:持续时间: 方法

此方法是从内部调用的 用于旋转的动画块 景色。您可以重写此方法 并使用它来配置其他 应在过程中发生的动画 视图旋转。比如你 可以使用它来调整缩放级别 对于您的内容,请更改滚动条 定位或修改其他可设置动画的对象 视图的属性

我想你可以在这里修改它,前后使用–willRotateToInterfaceOrientation:duration:和–didRotateFromInterfaceOrientation:

在我看来,这似乎效率低下,低于标准,因为它实际上根本没有取代过渡

我将在UIView上创建一个类别,其中包括-willRotateUsingTransition:等方法,并传递一个参数,告诉它淡入淡出,然后将视图的alpha设置为零。在每个子类中,如果适用的话,将覆盖此项以包括需要更改其alpha的任何子视图。当视图将要使用上述方法旋转时调用此方法,然后调用一个清理方法,当它们再次出现时恢复Alpha

编辑:文档。快速查看,再次揭示了此方法:-voidwillanimateseSecondhalf of RotationFromInterfaceOrientation:UIInterfaceOrientation FromInterfaceOrientation duration:NSTimeIntervalduration,我认为这是不推荐的。作为讨论的一部分,它包含了我先前在文档中发布的第二段中的文本。

有WillAnimateRotationInterfaceOrientation:duration:method,来自文档:

默认实现 这种方法没有任何作用。如果你 如果重写此方法,则不应 覆盖 WillAnimateFirstalFofrotationInterfaceOrientation:持续时间: 或 WillAnimateSecondhalf of RotationfromInterfaceOrientation:持续时间: 方法

此方法是从内部调用的 用于旋转的动画块 景色。您可以重写此方法 并使用它来配置其他 应在过程中发生的动画 视图旋转。比如你 可以使用它来调整缩放级别 对于您的内容,请更改滚动条 定位或修改其他可设置动画的对象 视图的属性

我想你可以在这里修改它,前后使用–willRotateToInterfaceOrientation:duration:和–didRotateFromInterfaceOrientation:

在我看来,这似乎效率低下,低于标准,因为它实际上根本没有取代过渡

我将在UIView上创建一个类别,其中包括-willRotateUsingTransition:等方法,并传递一个参数,告诉它淡入淡出,然后将视图的alpha设置为零。在每个子类中,如果适用的话,将覆盖此项以包括需要更改其alpha的任何子视图。当视图将要使用上述方法旋转时调用此方法,然后调用一个清理方法,当它们再次出现时恢复Alpha


编辑:文档。快速查看,再次揭示了此方法:-voidwillanimateseSecondhalf of RotationFromInterfaceOrientation:UIInterfaceOrientation FromInterfaceOrientation duration:NSTimeIntervalduration,我认为这是不推荐的。作为讨论的一部分,它包含了我先前在文档中发布的第二段的文本。

我通过将自动定向行为附加到隐藏视图,并通过实现自己的自定义效果来响应相关事件,实现了类似的效果。这是相当微妙的,我不记得所有的细节,但我设法行使完全控制的行为


不过,我应该说,在我的例子中,我想控制轮换是如何实现的。我希望主布局保持固定,同时协调旋转多个子视图。我想不出一个很好的理由来完全用淡入淡出取代旋转;这只会让用户无缘无故地感到困惑。我能想到的使用淡入淡出效果的唯一原因是,您希望切换到一个完全不同的UI,但即使如此,也没有理由抑制旋转效果。

我通过attachi实现了类似的效果 将自动定向行为隐藏到隐藏视图,并通过实现我自己的自定义效果来响应相关事件。这是相当微妙的,我不记得所有的细节,但我设法行使完全控制的行为


不过,我应该说,在我的例子中,我想控制轮换是如何实现的。我希望主布局保持固定,同时协调旋转多个子视图。我想不出一个很好的理由来完全用淡入淡出取代旋转;这只会让用户无缘无故地感到困惑。我能想到的使用淡入淡出效果的唯一原因是,您希望切换到一个完全不同的UI,但即使这样,也没有理由抑制旋转效果。

我已经尝试过很多次,包括setAnimationDelay、一步/两步动画等,但没有任何东西可以摆脱实际的旋转。不幸的是,我明白,如果我不使用内置的自动旋转功能,我就不会从IB.happle.Ah中定义的自动调整控件中获得好处。这是不幸的。对不起,我已经尝试了很多,包括setAnimationDelay,一步/两步动画等等,但是没有任何东西可以摆脱实际的旋转。不幸的是,我明白,如果我不使用内置的自动旋转功能,我就不会从IB.happle.Ah中定义的自动调整控件中获得好处。这是不幸的。对不起,我认为是否有理由抑制旋转效果是主观的。不幸的是,似乎没有好的技术方法来抑制它。@Stride:穿着感觉也是主观的,但没有人在头上穿内衣,或者至少,如果他们这样做了,他们通常不会试图穿上协调一致的衣橱。在任何情况下,我使用的指向隐藏视图的技术都会完全抑制正常效果,并允许您做任何您想做的事情。我最终得到了一个持有相关方向方法的视图控制器,该控制器的视图位于未使用的顶层视图中,即,它不在XIB的主视图树下。我不知道它是否需要嵌套视图,但到那时我已经厌倦了修补,它成功了。如果你不告诉我如何穿着,我就不会告诉你如何穿着。我认为是否有理由抑制旋转效果是主观的。不幸的是,似乎没有好的技术方法来抑制它。@Stride:穿着感觉也是主观的,但没有人在头上穿内衣,或者至少,如果他们这样做了,他们通常不会试图穿上协调一致的衣橱。在任何情况下,我使用的指向隐藏视图的技术都会完全抑制正常效果,并允许您做任何您想做的事情。我最终得到了一个持有相关方向方法的视图控制器,该控制器的视图位于未使用的顶层视图中,即,它不在XIB的主视图树下。我不知道它是否需要嵌套视图,但到那时我已经厌倦了修补,它成功了。如果你不告诉我怎么穿,我就不会告诉你怎么穿。