0

当 iOS 设备上的方向发生变化时,我正在使用下面的代码来设置视图。这可以给我想要的形状(更宽且高度相同),但是在改变方向时动画会跳动。如果我隐藏setFrame代码,动画会非常流畅,但形状当然不会变宽。我尝试添加一个变换,但到目前为止它以不合需要的方式扭曲了视图的形状(因为视图包含带有圆角等的复杂绘制形状)。

[myView setFrame:CGRectMake(0, 0, self.view.bounds.size.width-20, 170)];     
[myView setNeedsDisplay];     
CGPoint viewCenter = CGPointMake((myView.frame.size.width/2)+someNum (self.view.bounds.size.height-(someOtherNum/2)-anotherNum));     
myView.center = viewCenter;

//quick unsuccessful test to see if transforms would work:
//myView.transform = CGAffineTransformScale(CGAffineTransformIdentity, 1.5, 1);

有什么帮助吗?有没有办法在没有跳跃动画的情况下获得我的结果?

谢谢阅读!

4

1 回答 1

1

你试过 UIViewAnimation 吗?

[UIView animateWithDuration:0.2 animations:^{
    [myView setFrame:CGRectMake(0, 0, self.view.bounds.size.width-20, 170)];     
    [myView setNeedsDisplay];     
    CGPoint viewCenter = CGPointMake((myView.frame.size.width/2) + someNum
    (self.view.bounds.size.height-(someOtherNum/2)-anotherNum));
    myView.center = viewCenter;
}];
于 2013-01-17T16:55:02.973 回答