[i0S8] presentModalViewController で表示している画面で文字が切れる

ModalView01

iOS8 を甘く見ていたようで、いろいろな問題が発生している。
今回発見したのは おんぷちゃん for iPad で presentModalViewController を使って表示している結果表示画面内の部品がずれて表示されて、ボタンが押せないという問題。
試してみればすぐ発見できる問題だったが、iOS8 上でのチェックが甘かった。

- (void)viewWillAppear:(BOOL)animated {
	int w = self.view.bounds.size.width;
	int h = self.view.bounds.size.height;	
	MY_LOG(@"%d %d", w, h);

調査の結果、なぜか viewWillAppear で部品の配置を行っているためだった。
iOS7 まではこれでも正しく動いていたのだが、iOS8 からは、ModalView のサイズ(540, 620)ではなく、画面全体のサイズ (768, 1024)が返ってきていた。
とりあえず viewDidAppear に処理を移動したところ正しく表示されるようになったが、一瞬部品の再配置が見えてしまうので、viewDidLoad で部品を非表示にして、viewDidAppear で表示するようなWorkaroundを入れました。

それと、いまさらながら iOS6からはUITextAlignmentCenter が Depricated となり、NSTextAlignmentCenter を使う必要があることを知った。
Label Alignment in iOS 6 – UITextAlignment deprecated – Stack Overflow

iOS8 はiPhone6 Plus 対応など内部的には大きな変更が入っているようで、これまで起きたことがないような問題がたくさん起きている。
趣味の開発者には厳しい状況。

返信を残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.