2017年11月03日

UINavigationBarがStatusBarに重なっちゃう

XCode9とiOS11の組み合わせだと、こうなっちゃうらしい。
一説によると、Xcodeのバグだとかなんとか…
ほんと、もういい加減にしてくれよApple。

とりあえずこちらの記事
https://qiita.com/KikurageChan/items/4152c2d8ac89c601a054
を参考に、Objective-Cに書き換えて対応した。
ただし、この中でクラスによってframeのサイズを変えている部分は、そのままだとiPhoneXで表示がずれる。
全て同じサイズのframeにしたら、うまくいった。
理由は知らん。

@implementation CustomNavigationBar
- (void)layoutSubviews
{
[super layoutSubviews];

float statusBarH = [[UIApplication sharedApplication] statusBarFrame].size.height;

for (id subview in self.subviews) {

float x = [subview frame].origin.x;
float y = [subview frame].origin.y + statusBarH;
float w = [subview frame].size.width;
float h = [subview frame].size.height;

[subview setFrame:CGRectMake(x, y, w, h)];
}
}
@end
posted by horigood at 01:09| Comment(0) | TrackBack(0) | アプリ色々
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/181465422

この記事へのトラックバック