iOS应用程序:在为表视图重新加载数据时忽略屏幕大小编码

时间:2013-02-15 21:37:16

标签: ios cocoa-touch

我遇到了编码不同屏幕尺寸的问题。我是以编程方式检查屏幕大小是什么,然后在检测到更大的屏幕时调整表格高度,否则为标准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);
    }
}

screen shot

screen shot

**调用代码的部分。还有很多其他的,主要是每次执行'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];
}

0 个答案:

没有答案