自定义UIView旋转问题

时间:2010-09-27 15:21:50

标签: iphone ios4

我有一个UIView,我希望改变视图旋转时的大小和位置。但是,我需要能够以编程方式执行此操作,而不是使用布局设置和自动调整大小。为此,我尝试在设备旋转并调用重绘时更改视图的边框和边界,但无论我使用哪种变量组合,结果总是出错。我根本无法弄清楚正在发生什么事情来搞砸代码,而且这里发布的代码太多了。有人可以给我任何关于如何实现这一目标的提示或方法吗?我只是不知道在哪里看。

这是我用于纵向布局的代码:

clusterMap.frame = CGRectMake(0, self.view.frame.size.height/2, 
        self.view.frame.size.width, 
        self.view.frame.size.height/2);
clusterMap.bounds = CGRectMake(-clusterMap.frame.size.width/2, 
         -clusterMap.frame.size.height/2,
         clusterMap.frame.size.width,
         clusterMap.frame.size.height);
[clusterMap setNeedsDisplay];

但是当我尝试使用具有不同数字的此代码的改编版本时,它只是显示为屏幕是纵向的。如果我切换周围的数字,使一些是肖像,一些是风景,所以各种奇怪的事情发生。我可以描述的一个例子是图像可能以适当的比例绘制,但被剪裁到不正确的比例边界。我已经尝试了我能想到的每个图形组合,一次一个地系统地交换配对值之间的宽度和高度,并且这些组合都不起作用。

1 个答案:

答案 0 :(得分:2)

您需要使用其控制器的willAnimateRotationToInterfaceOrientation来实现此目的。如你所说,你必须改变他的框架属性^^

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
}

但如果您需要更多帮助,那么放一些代码^^

会很有用