2017-08-01 5 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-スウィフト。

+0

あなたは私がアニメーションを提供している場合、それは十分であることを意味します純粋な迅速を使用して? –

+0

@モハマド・バシール・シダニ:はい。スウィフトは作品なら十分です:) – StackOverflower

+0

thisUIView.animateを試してください(withDuration:0.5、delay:0.3、options:[.repeat、.curveEaseOut、.autoreverse]、アニメーション:{ view.frame = CGRect(x: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 
); 
関連する問題