2017-08-01 65 views
0

动画的翻译和高度有这样的代码是Xamarin.iOS。如何在同一时间在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或斯威夫特。

+0

你的意思是不够的,如果我提供了一个动画使用纯粹的快速? –

+0

@Mohammad Bashir Sidani:是的。迅速将是不够的,如果作品:) – StackOverflower

+0

请再试thisUIView.animate(withDuration:0.5,延迟:0.3,选择:[.repeat,.curveEaseOut,.autoreverse],动画:{ view.frame =的CGRect(X:0, Y:0,宽度:0,高度: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) 
+0

有什么区别用我的代码?你能解释为什么这会起作用吗? – StackOverflower

+0

在您的代码中,将x,y,widt,height全部设置为0的新宽度和高度是2动画(高度和原点)动画? –

+0

如果我将x,y,宽度和高度更改为0,则只会翻译动画。高度和宽度自动转换为0,没有任何动画 – StackOverflower

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 
);