场合: 我正在尝试显示加载屏幕,同时等待我的异步连接返回数据以填充tableview。
问题: 创建和添加loadingscreen工作正常,但是,tableview在其上绘制线条,请参见屏幕截图:
代码:我使用以下行添加视图:
-(void) viewDidLoad{
[super viewDidLoad];
_loadScreen = [[LoadScreen alloc] initWithFrame:self.view.bounds];
[self.view addSubview: _loadScreen];
[self fetchRemoteData];
}
问题:是否可以在表格的顶部添加加载视图?或者我可以确保tableview不会绘制它的行直到我调用reloadData?
- 提前谢谢, w ^
答案 0 :(得分: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并在加载数据时再次显示它。
答案 1 :(得分:0)
有一些方法可以解决您的问题:
- 为表格视图设置页脚视图,因此所有行都应该消失。
self.tableView.tableFooterView = [[[UIView alloc] initWithFrame:CGRectZero] autorelease];
- 我假设您使用UItableViewController。如果是这样,self.view和self.tableView都代表相同的视图,所以通过设置:
self.tableView.hidden = NO;
它甚至会隐藏您的加载视图。我鼓励你做的是创建一个自定义视图,其中有一个表视图作为其子视图。然后,您只需显示加载视图即可隐藏此表视图。
希望我能提供帮助。