方向改变问题

时间:2011-05-19 09:25:23

标签: cocoa-touch ios

我遇到了方向更改的一些问题。实际上,我有两个按钮,我希望它们相互粘连并居中:

-------------------------------------------
|          | Button1 | Button2 |          |
-------------------------------------------

为此,我使用以下方法:

- (void)positionViews
{

    CGPoint center = self.view.center;

    CGRect frame = self.buttonScreens.frame;
    frame.origin.x = center.x - frame.size.width;
    self.buttonScreens.frame = frame;

    frame = self.buttonGroups.frame;
    frame.origin.x = center.x;
    self.buttonGroups.frame = frame;

}

在viewDidLoad和didRotateFromInterfaceOrientation:中调用它,当方向为纵向时效果很好,当方向更改为横向时效果很好,但在横向已加载视图时按钮不会显示居中:

-------------------------------------------
|       | Button1 |  | Button2 |          |
-------------------------------------------

有什么问题?我该如何解决?

1 个答案:

答案 0 :(得分:0)

didRotateFromInterfaceOrientation被调用两次,以防视图以横向方向加载,就像它以纵向方式加载一样,然后旋转到横向。

我的解决方案是添加bool标志并在viewDidLoad的开头设置为YES并且

if (self.firstRun == YES)
{  
    self.firstRun = NO;
    return;
}
在didRotateFromInterfaceOrientation中。

这种情况正在发生,因为你的nib文件是纵向设置的,并且总是以纵向加载,触发通知。