我遇到了方向更改的一些问题。实际上,我有两个按钮,我希望它们相互粘连并居中:
-------------------------------------------
| | 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 | |
-------------------------------------------
有什么问题?我该如何解决?
答案 0 :(得分:0)
didRotateFromInterfaceOrientation被调用两次,以防视图以横向方向加载,就像它以纵向方式加载一样,然后旋转到横向。
我的解决方案是添加bool标志并在viewDidLoad的开头设置为YES并且
if (self.firstRun == YES)
{
self.firstRun = NO;
return;
}
这种情况正在发生,因为你的nib文件是纵向设置的,并且总是以纵向加载,触发通知。