2011-12-25 24 views
1

UIViewという標準設定では、コンテナの幅と高さが同じであるとします。この質問の目的のために、その寸法が320x400であるとしましょう。このビューに標準サイズよりも大きい(通常は)コンテンツが含まれているとします(コンテンツをスクロールします)。UIViewを回転する。回転中のクリッピングを防ぐには?

は今、このUIViewはそのtransformプロパティを使用してビューを回転させるために使用され、それに関連付けられたUIRotationGestureRecognizerを持っている場合、どのように私は十分に大きい」によって(そのフレームサイズ/描画可能領域は常にその現在の向きのために十分な大きさであることを保証します「レンダリングされたコンテンツは、常に元の境界に拡張され、元の境界の端に達する前にクリップされないようにする必要があります。たとえば、90度回転させると、ビューの幅は400ピクセルまで、高さは320ピクセルに制限されます。

回転操作の一部としてビューを拡大/縮小したくないことに注意してください。利用可能な場合は追加のコンテンツを表示し、同じコンテンツをより高いズームレベルで表示するのではなく、現在のローテーションによって利用可能になる「追加の」スペースを使用する必要があります。

答えて

1

回転時に空白が表示されないようにします。解決策は、回転中にビューポート全体をカバーするのに十分な大きさの背景を含むサブビューを持つことです。私は400×400のビューがすべきだと言っています。このビューはコンテンツビューの親のどちらかになることができますが、それはあなたに少し面倒な手間を与えます。

あなたの現在のビューにサブビューを追加する方が簡単でしょう。 (大)背景をこのサブビューに置き、このビューがビュースタックの最下部にあり、currentview put clipsToBounds = NOであることを確認してください。

特に、ビュー階層が複雑になる場合は、このクリッピングを無効にするとパフォーマンスに影響が出る可能性があります。

関連する問題