Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 自动旋转自定义UIView时保持比例_Iphone_Uikit - Fatal编程技术网

Iphone 自动旋转自定义UIView时保持比例

Iphone 自动旋转自定义UIView时保持比例,iphone,uikit,Iphone,Uikit,这可能真的很容易,真的很愚蠢,或者我的google fu已经严重恶化了。无论如何,我正在为我的应用程序实现自定义视图,它使用纯CGContext绘图,没有子视图(至少现在是这样)。问题是,我想让它自动旋转,所以我有shouldAutorotateToInterfaceOrientation返回YES,瞧,视图会旋转。但这样做实际上并不是重画内容(我假设它被渲染成框架中某个地方的纹理,并被渲染到一个矩形上,但这在这里并不相关),矩形只是被拉伸,挤压内容。我怎样才能让它在旋转时简单地画出更大的面积呢

这可能真的很容易,真的很愚蠢,或者我的google fu已经严重恶化了。无论如何,我正在为我的应用程序实现自定义视图,它使用纯CGContext绘图,没有子视图(至少现在是这样)。问题是,我想让它自动旋转,所以我有
shouldAutorotateToInterfaceOrientation
返回YES,瞧,视图会旋转。但这样做实际上并不是重画内容(我假设它被渲染成框架中某个地方的纹理,并被渲染到一个矩形上,但这在这里并不相关),矩形只是被拉伸,挤压内容。我怎样才能让它在旋转时简单地画出更大的面积呢?也就是说,我的内容比屏幕大,我只希望视口在旋转过程中发生变化

我尝试过将视图的
contentMode
设置为
UIViewContentModeRedraw
,但没有任何效果,我尝试过使用
autoresizeMask
功能,但似乎也没有任何帮助。我还尝试在
willRotateToInterfaceOrientation
中插入
setNeedsDisplay
,但这只会导致它使用新的边界重新绘制(即首先挤压它,然后在旋转过程中将其拉伸到正确的大小),这也是我不希望看到的


有人知道我该怎么做才能让它工作吗?

事实证明,它是愚蠢和简单的混合体。如果有人有一天想看的话,我就把它贴在这里。我解决这个问题的方法实际上是在窗口和我的视图之间夹一个视图(我想你可以直接在窗口上工作,但这样感觉更直观)。也就是说,我将我的视图作为子视图添加到该视图中,我将其称为框架

框架是一个正常的大小调整,但是,我关闭了子视图的大小调整,并使我自己的视图大于查看区域(实际上是正方形,480x480,因此它可以以任何方式覆盖整个屏幕)。问题基本上解决了


现在,我正在尝试在willRotateToInterfaceOrientation期间设置帧中视图偏移的动画,使其看起来围绕中心旋转,而不是左上角,但这是一个不同的问题。

事实证明,这是一个简单和愚蠢的混合体。如果有人有一天想看的话,我就把它贴在这里。我解决这个问题的方法实际上是在窗口和我的视图之间夹一个视图(我想你可以直接在窗口上工作,但这样感觉更直观)。也就是说,我将我的视图作为子视图添加到该视图中,我将其称为框架

框架是一个正常的大小调整,但是,我关闭了子视图的大小调整,并使我自己的视图大于查看区域(实际上是正方形,480x480,因此它可以以任何方式覆盖整个屏幕)。问题基本上解决了

现在,我正在尝试在
willRotateToInterfaceOrientation
期间设置帧中视图偏移的动画,使其看起来围绕中心旋转,而不是左上角,但这是另一个问题