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
Iphone 在ipad应用程序中旋转视图(以及调整视图中的元素大小)时出现问题_Iphone_Ipad_Rotation - Fatal编程技术网

Iphone 在ipad应用程序中旋转视图(以及调整视图中的元素大小)时出现问题

Iphone 在ipad应用程序中旋转视图(以及调整视图中的元素大小)时出现问题,iphone,ipad,rotation,Iphone,Ipad,Rotation,我在iPad上做了一个恶梦。我到处找了一些教程,但似乎没有找到我想要的。(可能不是在寻找正确的东西?!) 默认情况下,我有一个纵向视图,它是一个图像和视图内的一个按钮。当我旋转的时候,我发现这可以算出是否是风景。然后,我尝试设置uiview的帧大小,使其与屏幕完美匹配 如果我让它自动调整大小,它只会拉伸并填充屏幕。这是我不想要的。 但问题是,当我调整大小时,按钮也会调整大小,但与图像的比例不同 我的问题是:调整视图大小的最佳方法是什么。我只想简单地将uiview减少60%,并以同样的60%调整该

我在iPad上做了一个恶梦。我到处找了一些教程,但似乎没有找到我想要的。(可能不是在寻找正确的东西?!)

默认情况下,我有一个纵向视图,它是一个图像和视图内的一个按钮。当我旋转的时候,我发现这可以算出是否是风景。然后,我尝试设置uiview的帧大小,使其与屏幕完美匹配

如果我让它自动调整大小,它只会拉伸并填充屏幕。这是我不想要的。 但问题是,当我调整大小时,按钮也会调整大小,但与图像的比例不同

我的问题是:调整视图大小的最佳方法是什么。我只想简单地将uiview减少60%,并以同样的60%调整该视图中所有内容的大小。我认为目前唯一可行的方法是创建两个视图。。。但这是工作和维护的两倍

我尝试过在Interface builder中弄乱自动调整箭头,但这似乎又一次把事情搞砸了


我在这里完全迷路了!!感谢您提供的任何信息。您遇到的问题是视图的大小会自动调整为屏幕比例。在纵向方向的iPad上,屏幕尺寸为1024x768。旋转到横向后,原点也会旋转,屏幕内容会倾斜或拉伸到768x1024

您需要做的是覆盖

-(void)WillAnimateRotationInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation持续时间:(NSTimeInterval)持续时间


旋转视图的
UIViewController
消息。此消息在旋转的动画块内调用。您只需将子视图(按钮)的框架大小设置为最适合您的大小。有一次我在旋转OpenGL视图时遇到问题。旋转到“横向”时,视图的内容被拉伸。由于不可能在动画块中更改任何OpenGL矩阵,因此我找到的唯一解决方案是使视图为二次视图,并将原点设置在屏幕边界后面(在-x方向)。还必须重写消息,以将屏幕上的原点重置(在-Y方向)限制在风景模式中,以将视口保持在屏幕中间。这样,视图就保持了它的比例。无论哪种解决方案最适合您,覆盖此消息都会奏效。

您是否尝试过禁用UIView上的autoresizesSubviews属性?调整视图大小时,它应防止对子视图进行任何大小更改