【问题标题】:Tableview lines show trough loading viewTableview 行显示槽加载视图
【发布时间】:2011-04-15 11:34:30
【问题描述】:

情况: 我试图在等待异步连接返回数据以填充表格视图时显示加载屏幕。

问题: 创建和添加加载屏幕可以正常工作,但是,表格视图会在其上绘制线条,请参见屏幕截图:

.

代码:我用这些行添加视图:

-(void) viewDidLoad{
    [super viewDidLoad];

    _loadScreen = [[LoadScreen alloc] initWithFrame:self.view.bounds];
    [self.view addSubview: _loadScreen];
    [self fetchRemoteData];
}

问题:是否可以在表格顶部添加加载视图?或者我可以确保在我调用 reloadData 之前 tableview 不会画线吗?

-提前致谢, W

【问题讨论】:

    标签: iphone ios uitableview uiview


    【解决方案1】:

    我已经这样做了很多次了:

    -(void) viewDidLoad{
        [super viewDidLoad];
    
        _loadScreen = [[LoadScreen alloc] initWithFrame:self.view.bounds];
        [self.tableView addSubview: _loadScreen];
        self.tableView.hidden = YES;
        [self fetchRemoteData];
    
    }
    
    - (void)dataFetchedSuccessfully
    {
        self.tableView.hidden = NO;
    }
    

    只需隐藏 tableview 并在数据加载后再次显示。

    【讨论】:

    • 啊,太棒了!有时答案比你想象的要简单:)
    【解决方案2】:

    有一些方法可以解决你的问题:

    -为表格视图设置页脚视图,因此所有行都应该消失。

    self.tableView.tableFooterView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
    

    -我假设你使用 UItableViewController。如果是self.view和self.tableView都代表同一个视图,那么通过设置:

    self.tableView.hidden = NO;
    

    它甚至会隐藏你的加载视图。我鼓励你做的是创建一个自定义视图,它有一个表视图作为它的子视图。然后你可以通过只显示一个加载视图来隐藏这个表视图。

    希望我能帮上忙。

    【讨论】:

    • 你猜对了。但我已经把它修好了。我确实不得不将类更改为带有 uitableview 的 uiviewcontroller。我只在连接返回时分配和添加 tableView。 (Nick 的回答让我意识到我必须这样做,因为从 tableviewcontroller 隐藏视图会隐藏其中的所有视图。)
    猜你喜欢
    • 2018-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多