Iphone 自动旋转自定义UIView时保持比例
这可能真的很容易,真的很愚蠢,或者我的google fu已经严重恶化了。无论如何,我正在为我的应用程序实现自定义视图,它使用纯CGContext绘图,没有子视图(至少现在是这样)。问题是,我想让它自动旋转,所以我有Iphone 自动旋转自定义UIView时保持比例,iphone,uikit,Iphone,Uikit,这可能真的很容易,真的很愚蠢,或者我的google fu已经严重恶化了。无论如何,我正在为我的应用程序实现自定义视图,它使用纯CGContext绘图,没有子视图(至少现在是这样)。问题是,我想让它自动旋转,所以我有shouldAutorotateToInterfaceOrientation返回YES,瞧,视图会旋转。但这样做实际上并不是重画内容(我假设它被渲染成框架中某个地方的纹理,并被渲染到一个矩形上,但这在这里并不相关),矩形只是被拉伸,挤压内容。我怎样才能让它在旋转时简单地画出更大的面积呢
shouldAutorotateToInterfaceOrientation
返回YES,瞧,视图会旋转。但这样做实际上并不是重画内容(我假设它被渲染成框架中某个地方的纹理,并被渲染到一个矩形上,但这在这里并不相关),矩形只是被拉伸,挤压内容。我怎样才能让它在旋转时简单地画出更大的面积呢?也就是说,我的内容比屏幕大,我只希望视口在旋转过程中发生变化
我尝试过将视图的contentMode
设置为UIViewContentModeRedraw
,但没有任何效果,我尝试过使用autoresizeMask
功能,但似乎也没有任何帮助。我还尝试在willRotateToInterfaceOrientation
中插入setNeedsDisplay
,但这只会导致它使用新的边界重新绘制(即首先挤压它,然后在旋转过程中将其拉伸到正确的大小),这也是我不希望看到的
有人知道我该怎么做才能让它工作吗?事实证明,它是愚蠢和简单的混合体。如果有人有一天想看的话,我就把它贴在这里。我解决这个问题的方法实际上是在窗口和我的视图之间夹一个视图(我想你可以直接在窗口上工作,但这样感觉更直观)。也就是说,我将我的视图作为子视图添加到该视图中,我将其称为框架 框架是一个正常的大小调整,但是,我关闭了子视图的大小调整,并使我自己的视图大于查看区域(实际上是正方形,480x480,因此它可以以任何方式覆盖整个屏幕)。问题基本上解决了
现在,我正在尝试在willRotateToInterfaceOrientation期间设置帧中视图偏移的动画,使其看起来围绕中心旋转,而不是左上角,但这是一个不同的问题。事实证明,这是一个简单和愚蠢的混合体。如果有人有一天想看的话,我就把它贴在这里。我解决这个问题的方法实际上是在窗口和我的视图之间夹一个视图(我想你可以直接在窗口上工作,但这样感觉更直观)。也就是说,我将我的视图作为子视图添加到该视图中,我将其称为框架 框架是一个正常的大小调整,但是,我关闭了子视图的大小调整,并使我自己的视图大于查看区域(实际上是正方形,480x480,因此它可以以任何方式覆盖整个屏幕)。问题基本上解决了 现在,我正在尝试在
willRotateToInterfaceOrientation
期间设置帧中视图偏移的动画,使其看起来围绕中心旋转,而不是左上角,但这是另一个问题