如何在iOS中同时为翻译和高度设置动画

时间:2017-08-01 11:38:26

标签: ios animation

我有这个代码是Xamarin.iOS。

UIView.Animate(
    1.0,
    () => View.Frame = new CGRect(0, View.Frame.Y - 30, 100, View.Frame.Height + 40);
    null
);

我正在设置Y平移和高度增加。只有翻译是动画,但高度增加没有动画:(

事实上Xamarin是不相关的,我认为这不是Xamarin特定的问题所以答案可能是C#,Objective-C或Swift。

2 个答案:

答案 0 :(得分:1)

UIView.animate(withDuration: 0.5, delay: 0.3, options: [.repeat, .curveEaseOut, .autoreverse], animations: {
        view.frame = CGRect(x: newX, y:newY, width:newWidth, height:newHeight)
    }, completion

: nil)

答案 1 :(得分:0)

找到答案。问题与添加动画选项UIViewAnimationOptions.LayoutSubviews有关,以允许子视图与父级同步动画。

UIView.Animate(
    1.0, 
    0, 
    UIViewAnimationOptions.LayoutSubviews,
    () => View.Frame = new CGRect(0, View.Frame.Y - 30, 100, View.Frame.Height + 40),
    null
);