我在一个ViewControler中有2个UIToolbar。
我需要在旋转时更改其正蛋白。
我加2个网点
@property (nonatomic, retain) IBOutlet UIToolbar *toolbar1;
@property (nonatomic, retain) IBOutlet UIToolbar *toolbar2;
将它们连接到IB
现在在viewcontroller.m中,我使用此代码
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if (toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft ||
toInterfaceOrientation == UIInterfaceOrientationLandscapeRight)
{
toolbar1.frame = CGRectMake(0, 0, 1024, 44);
toolbar2.frame = CGRectMake(0, 374, 1024, 44);
}
else
{
toolbar1.frame = CGRectMake(0, 0, 768, 44);
toolbar2.frame = CGRectMake(0, 502, 768, 44);
}
}
问题是-没有任何改变!
我该如何解决?
附言使用网络视图可以正常工作
最佳答案
确保在ViewController.xib中取消选中“自动布局”,然后此代码始终有效。
更改高度以查看不同并以其他方法注释掉所有设置。
- (void)viewDidLayoutSubviews{
if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)){
toolbar1.frame = CGRectMake(0, 0, 1024, 20);
toolbar2.frame = CGRectMake(0, 374, 1024, 20);
} else {
toolbar1.frame = CGRectMake(0, 0, 768, 44);
toolbar2.frame = CGRectMake(0, 502, 768, 44);
}
}
关于ios - UIToolbar和CGRectMake,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17075747/