0
何らかの理由で、私のUIWindow
のrootViewController
のマージンが左右に16、上下に0に設定されています。残念ながら、私は手作業ですべてを初期化するレガシー(読み込み:非ストーリーボード)アプリケーションで作業しています。これは、出力ルートビューコントローラのマージンが奇数に設定されている
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
コード
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
self.window.rootViewController = [[UIViewController alloc] init];
[self.window makeKeyAndVisible];
UIEdgeInsets insets = self.window.layoutMargins;
NSLog(@"Left %f, Right %f, Bottom %f, Top %f", insets.left, insets.right, insets.bottom, insets.top);
insets = self.window.rootViewController.view.layoutMargins;
NSLog(@"Left %f, Right %f, Bottom %f, Top %f", insets.left, insets.right, insets.bottom, insets.top);
製造する際に、このコードを持っている0
の下の余白を持つことを主張多くの層の深いView Controllerを、影響します
2016-08-03 18:10:24.280 app[426:182429] Left 8.000000, Right 8.000000, Bottom 8.000000, Top 8.000000
2016-08-03 18:10:24.280 app[426:182429] Left 16.000000, Right 16.000000, Bottom 0.000000, Top 0.000000
最終的にこれが期待される動作であることがわかりました。新しいUIViewControllerをプッシュすると、下の余白が追加されないことに驚いています。これは予想される動作ですか? iOSでボトムマージンを期待することはできませんか?
私はビューをレイアウトする際にlayoutMarginsを使用していましたが、ボタンがビューの一番下に配置されていて、外側から設定されているのが奇妙でした。私はこれが期待されていると思いますが、あなたがストーリーボードとXIBを使ってビルドしているならば、インセットされているボトム&トップのレイアウトガイドを使うことを提案します。レガシーが起こっているようです。 – JustinHK
AutoLayoutとFrame/Boundsを使用することの違いをはっきりと理解してください。マージンガイドラインに対するあなたの期待は、システムごとに異なります。 – bsarrazin
私はautolayoutをたった今使っていましたが、iOSで単一ページのアプリケーションを作成し、上端、下端、および両側の余白に唯一のサブビューを固定すると、エッジには触れませんが触れません画面の上部と下部。 – JustinHK