0

initWithFrameビュー コントローラーのメイン ビューのサブビューとして機能する UIView を初期化するメソッドを使用しています。ただし、UIView は常に、画面全体をカバーする横向きモードのフレームではなく、縦向きモードのフレームに基づいて表示されるように見えます (したがって、画面の端にぴったりと収まります)。

ビューコントローラーをランドスケープモードで初期化しているため、uiview は正しいパラメーターで初期化する必要がありますが、現在はそうではないようです。私はスーパービューのフレーム、スーパービューの境界、およびUIScreen mainscreen可能な引数 (四角形) をinitWithFrameに使用してきましたが、これまでのところ運がありません。

4

1 に答える 1

2

autoresizingMask初期化後にビューに適切に定義する必要があります。

まず、ビューをframe画面として初期化しますbounds(または、親ビューが画面全体を占有している場合は、親ビューの)。次に、ビューautoresizingMaskを次のように設定します。

self.myView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | 
  UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin |
  UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;

これによりbounds、親のビューboundsが変更されたときにビューが自動的に変更されます。

于 2013-06-30T16:16:25.710 に答える