willRotateToInterfaceOrientation问题与uiview框架

时间:2014-08-21 14:41:23

标签: ios

我使用下面的代码更改我的视图中心:

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    [self setUpViewForOrientation:toInterfaceOrientation];
}

-(void)setUpViewForOrientation:(UIInterfaceOrientation)orientation
{
    if(UIInterfaceOrientationIsLandscape(orientation))
    {
        self.imagesView.center = CGPointMake(40, 40);

        [self.imagesView setBackgroundColor:[UIColor grayColor]];
    }
    else
    {

    }
}

但uiview的颜色已更改但位置不是,可能会出现什么问题?

1 个答案:

答案 0 :(得分:0)

使用setUpViewForOrientation方法拨打willAnimateRotationToInterfaceOrientation:duration:,而不是willRotateToInterfaceOrientation:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
    [self setUpViewForOrientation:toInterfaceOrientation];
}

如文档中所述:

  

调用此方法时,将调用interfaceOrientation属性   已经设置为新方向,并且视图的边界具有   被改变了。因此,您可以执行所需的任何其他布局   你对这种方法的看法。

漂亮的副作用"使用此方法的方法是在旋转期间对布局更改进行动画处理。