我在一个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/

10-13 05:42