我有一个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;
答案 0 :(得分:0)
使用self.separator.bounds
,而不是self.separator.frame
并使用willAnimateRotationToInterfaceOrientation:
或didRotateFromInterfaceOrientation:
。