さまざまな画面サイズのコーディングに問題があります。プログラムで画面サイズを確認し、より大きな画面が検出された場合はテーブルの高さを調整します。それ以外の場合、レイアウトは標準の iPhone レイアウトに設定されます。大きい方の画面サイズが検出され、テーブル サイズが適切に調整されます。テーブルで「reloadData」を実行すると、ビューは小さいサイズのテーブルに戻ります。サイズチェックコードはステップスルーされていますが、一見無視されていますか? 別のタブに切り替えてから問題のタブに戻ると、画面がより大きなサイズのテーブルで再描画されます。以下は、スクリーン チェックに使用するコードと、変更されたテーブル サイズを示すスクリーン ショットです。すべてを投稿するにはコードが多すぎます。よろしくお願いします。何か考えはありますか?
-(void)screenCheck
{
// detecting screen size
if (([UIScreen mainScreen].scale == 2) && ([[UIScreen mainScreen] bounds].size.height == 568))
{
// retina 4" screen
// changing table height
tableVerseView.frame = CGRectMake(tableVerseView.frame.origin.x, 215, tableVerseView.frame.size.width,260);
}
}
** コードが呼び出されるセクション。主に「reloadData」が実行されるたびに、他にも多くあります
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// reloading table data
[self loadVerses];
[self.tableVerseView reloadData];
// testing for no verses available
if ([tableVerseData count] > 0)
{
// selecting the previously selected table row
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:array_pos inSection:0];
[tableVerseView.delegate tableView:tableVerseView didSelectRowAtIndexPath:indexPath];
}
else
{
// clearing table view because there are no verses left
labelVerseText.text = @"You need to add a new Verse to your 'New Verses' Challenge List.";
labelVerseTitleOpen.text = @"Verse Title";
labelVerseDaysOpen.text = @"Day Count";
}
// screen resolutution check
[self screenCheck];
}