我已创建此表视图节标题。它基本上是一个UIView
容器,我将所有元素包装在该节标题上。
此容器视图由
返回- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
一切正常。
现在我希望标题在淡入时显示,就像表格一样。所以,我最初为容器声明alpha = 0
,然后在viewDidAppear:
上执行此操作(啊,此表位于正在出现的视图控制器内)。
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[UIView animateWithDuration:1.0
animations:^{
[self.tableHeader setAlpha:1.0f];
}];
}
没有任何反应,标题继续不可见。
我试图添加:
[self.tableView beginUpdates]; //and
[self.tableView beginUpdates];
在上述动画之前和之后,没有成功。
在我看来,表头没有更新,并且继续不可见。
答案 0 :(得分:5)
首先,在NSLog
和viewDidAppear
tableView:viewForHeaderInSection:
你会看到viewDidAppear
首先执行,一旦tableView有异步加载,你就不知道什么时候会调用viewForHeaderInSection
。
以下是一个解决方法:
-(UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
_tableHeader = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 100)];
_tableHeader.backgroundColor = [UIColor redColor];
_tableHeader.alpha = 0;
[UIView animateWithDuration:1.0
animations:^{
[_tableHeader setAlpha:1.0f];
}];
return _tableHeader;
}
当表格返回viewHeader时,只需调用动画即可。