今日発生したピット(スクリーンアダプタの問題、UIalertViewの問題)、storyboardのスクリーンアシスタント

1932 ワード

スクリーンアダプタの問題


EyptBeaconプロジェクトではstoryboardでAutoLayoutとSizeClassesで作ったスクリーンアダプティブと制約を使い、iPhone 6 plusで実行して問題なく、その後テスターのiPhone 5でテストしたところ、appに入った後、スクリーンの上にナビゲーションバーの位置とスクリーンの下ToolBarの位置に黒いスクリーンが残っていて、スクリーンアダプティブをしていないように、後にシミュレータで実行し、しかし、このような問題は現れなかった.その後調べた様々な方法で、最終的な解決策は、プロジェクトに起動画像を追加することです.もともとプロジェクトは起動画像がないため、何枚かの空白画像を起動画像の位置に追加した後、iPhone 5デバイスに実行し、上下部分の黒い画面の問題が解決しましたが、新しい問題が発生しました.プログラムが入った最初のコントローラはナビゲーションバーとtableView付きのコントローラで、storyboardにa u t o m a t icallyAdjustsScrollViewInsetsをYESとし、iPhone 6 PlusではtableViewの位置はnavigationBarの下にあるが、iPhone 5でプログラムを実行するとtableViewのビュー左頂点が親ビューの原点位置であることが判明し、tableViewはnavigationBarに遮られる.その後のデバッグは、A u t o m a t i c a llyAdjustsScrollViewInsetsをYESにしてもNOにしても効果がありません.最後にtableViewのframe(0,64,screenWidth,screenHeight)を再設定し、automaticallyAdjustsScrollViewInsetsをYESに設定するしかありません.

UIalertViewの問題

else if (([change[NSKeyValueChangeOldKey] intValue] == 35) && ([change[NSKeyValueChangeNewKey] intValue] == 36)) {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"" message:NSLocalizedString(@"the length of uuid is 32", nil) delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
    [alert show];
}

シナリオは、キーボードが36文字に入力されたときに、プロンプトボックスが1つ押し出されたが、実際の実機テストでは、36文字に入力されたときに、[alert show];の後ろにreturn;を追加すると、2つのプロンプトボックスが現れないことが分かった.なぜこのような状況が発生したのかは不明だ.

storyboardのスクリーンプレビューアシスタントの使用


ある时、スクリーンの适合と制约をして、もし异なる型番の携帯电话を持ってスクリーンの上の制约の効果をテストする时とても不便で、もしスクリーンのプレビューのアシスタントを使うならば、とても便利で直感的に制约を追加した后のビューの异なるサイズのスクリーンの上の効果を见ることができて、スクリーンのプレビューのアシスタントを见るステップは:
  • storyboard左上隅ボタン
  • をクリック
  • Preview
  • をクリック
  • キーボードのoption+shiftキーを押して、対応するstoryboard
  • をクリックします.
  • 右側のプラスボタンをダブルクリックし、プレビューウィンドウ
  • を追加
    画面プレビューのウィンドウが表示され、左下の+番号をクリックして、異なる機種の携帯電話の画面を追加することもできます.これにより、storyboardのレイアウトが異なるサイズの画面に表示される効果を簡単に見ることができ、携帯電話で実行する必要がなく、見ることができます.