iPhone旋转后如何在屏幕上移动项目位置

时间:2010-07-16 11:14:53

标签: iphone cocoa-touch rotation

我有一个UILabel,我需要在应用程序启动时向上移动大约50个像素(因为它以纵向开始,我以横向方式设计)然后每当它被放回到纵向时再次移动。现在我正在使用基于其当前帧的CGRect。问题是,当我尝试旋转手机时,框架使用纵向值,并将标签放置在关闭位置。我尝试过使用其他几种方法,所有这些方法都基于CGRect,并且当它们将标签保持在右轴上时,它会在整个地方移动。与此同时,我正在这样做,我也在改变字体的大小,所以我认为这可能会影响某些东西。

我使用的代码是:

//In ViewDidLoad
CGRect defBox = self.seperator.frame;

//On Rotation to Portriate
CGRect newBox = self.seperator.frame;
  newBox.origin.y += 50;
  self.seperator.frame = newBox;

//On Rotation to Landscape
self.seperator.frame = defBox;

1 个答案:

答案 0 :(得分:0)

使用self.separator.bounds,而不是self.separator.frame并使用willAnimateRotationToInterfaceOrientation:didRotateFromInterfaceOrientation: