0

我在为不同的屏幕尺寸编码时遇到问题。我正在以编程方式检查屏幕大小,如果检测到更大的屏幕,然后调整表格高度,否则布局设置为标准 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];
}
4

0 回答 0