Tableview 行显示槽加载视图

Posted

技术标签:

【中文标题】Tableview 行显示槽加载视图【英文标题】:Tableview lines show trough loading view 【发布时间】: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

【问题讨论】:

【参考方案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 隐藏视图会隐藏其中的所有视图。)

以上是关于Tableview 行显示槽加载视图的主要内容,如果未能解决你的问题,请参考以下文章

将数据从firebase加载到集合单元格内的tableview

UITableView 页脚未显示

滚动视图内的不可滚动的tableview

带有 UITableView 的 UIToolBar - 加载时 TableView 不刷新

获取行数据时在表视图中显示活动指示器

使用自动布局将视图定位在 tableview 的顶部