1

ユーザーがボタンをタップしたときに、メイン ビュー コントローラー ビューを右にスライドさせようとしています。私はこのコードを使用します:

   [UIView  animateWithDuration:1
                          delay:0
                        options:UIViewAnimationOptionBeginFromCurrentState
                     animations:^(void){ self.view.left = 300; }
                     completion:nil];

その結果、view.frame.origin.x はデバイスの向きを考慮しません。画面が横向きの左の場合、x = 300 に設定してもビューは右に移動せず、下に移動します。方向に応じて関連するパラメーターを変更するために大きな switch ステートメントを実行できますが、そのような悪ふざけに頼ることなく以前にこれを実行したように感じます。明らかな何かが欠けていますか?

オプションなしで試してみましたが、違いはありません。

CGRectMake 全体を明示的に入力する必要がないように、UIView でカテゴリを使用しています。完全な CGRectMake ステートメントで実行しても、結果は同じです。

4

1 に答える 1

0

同じ問題がありました。ビューのフレームの代わりにビューの境界をアニメーション化すると(これがカテゴリの動作だと思います)、うまくいきました。

于 2013-06-05T01:19:22.353 に答える