纵向/横向单点触控旋转视图

Posted

技术标签:

【中文标题】纵向/横向单点触控旋转视图【英文标题】:Monotouch rotate view in Portrait/Landscape 【发布时间】:2009-10-04 18:33:39 【问题描述】:

谁能举例说明如何将单点触控应用程序的视图从纵向旋转到横向,反之亦然?

【问题讨论】:

【参考方案1】:

如果您在 Interface Builder 中设置 ui 元素的几何形状,请确保在 Size Inspector (Cmd+3) 中设置 Autosizing 属性。然后,您可以通过单击 Interface Builder 中视图标题栏左上方的小“旋转”按钮来查看旋转后视图的外观。

完成所有设置后,只需在 ViewController 中覆盖以下方法:

public override bool ShouldAutorotateToInterfaceOrientation (UIInterfaceOrientation toInterfaceOrientation)

    return true;

现在在模拟器中,您可以随意旋转,您的 UI 将自动适应。

【讨论】:

天啊,我简直不敢相信这是多么简单! :) 这绝对应该被标记为正确答案。谢谢。【参考方案2】:

大家都知道,它现在在视图 Transform 对象上:

View.Transform.Rotate(3.14159f * 0.5f);

对于所有像我这样不想使用任何 CGAffineTransform 的 dotnet 人,认为它会破坏其他东西,试试吧。非常适合我的实例。旋转 NavigationController.View,里面的一切都很完美。

【讨论】:

这只会旋转一个特定的视图,如果它在 UINavigationController 内,导航控制栏将在屏幕的错误一侧。【参考方案3】:

这是你可以尝试的。

如果您想在触摸视图时更改视图的方向,请按照以下步骤操作

    在视图中实现 touchesBegan 方法。

    在 touchesBegan 方法中检查当前设备方向, [[UIDevice currentDevice] orientation];

    如果要更改方向,请在视图上使用 CGAffineTransformation 方法viewRef.transform = CGAffineTransformMakeRotation(angle);

【讨论】:

以上是关于纵向/横向单点触控旋转视图的主要内容,如果未能解决你的问题,请参考以下文章

从纵向模式旋转到横向模式时不调整子视图

UIView 旋转,模态视图横向和纵向,父级无法渲染

如何创建一个同时支持横向和纵向但不在它们之间旋转的视图控制器(保持其初始方向)

当我在 iOS7 的 iPad 中将视图从纵向旋转到横向或反之亦然时,UITextfield shouldChangeCharactersInRange 没有调用

iPad 应用程序,HTML5,横向和纵向旋转

如何处理 iPad 模态视图旋转