明らかな寸法の違いは別として、コードに論理エラーがあり、この不整合が発生している可能性があると思います。
self.view.bounds.size.height
画面の下端を判別するために使用していますが、ここに矛盾があります。
参考までに、loadingView
は常に一定のサイズです。
if (loading==TRUE) {
[UIView animateWithDuration:0.25 animations:^{
[loadingView setFrame:CGRectMake(loadingView.frame.origin.x, self.view.bounds.size.height-loadingView.frame.size.height, loadingView.frame.size.width, loadingView.frame.size.height)];
}];
} else {
[UIView animateWithDuration:0.25 animations:^{
[loadingView setFrame:CGRectMake(loadingView.frame.origin.x, self.view.bounds.size.height+loadingView.frame.size.height, loadingView.frame.size.width, loadingView.frame.size.height)];
}];
}
上記の関数を実行して、画面の一番下にある「ページの読み込み」通知を表示および非表示にします。
これが私の問題です:
iPad(正しい):
iPhone(不正解):
さて、明らかにここには高さの違いがあり、なぜそれがiPhoneでのみ発生し、iPadでは発生しないのかわかりません。
私は自分のアプリをユニバーサルにしようとしていますが、明らかに、コード全体で多くのデバイスチェックをしたくありません。デバイスの下端を判別するためのより洗練された方法が必要です。