Spa*_*Dog 0 iphone objective-c uitableview ios
我创建了这个表视图节头.它基本上是一个UIView容器,我将所有元素包装在该节标题上.
此容器视图由返回
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
Run Code Online (Sandbox Code Playgroud)
一切都很好.
现在我希望标题显示为淡入,如表所示.所以,我最初alpha = 0为容器声明然后执行此操作viewDidAppear:(啊,此表位于出现的视图控制器内).
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[UIView animateWithDuration:1.0
animations:^{
[self.tableHeader setAlpha:1.0f];
}];
}
Run Code Online (Sandbox Code Playgroud)
没有任何事情发生,标题继续不可见.
我试图添加:
[self.tableView beginUpdates]; //and
[self.tableView beginUpdates];
Run Code Online (Sandbox Code Playgroud)
在提到的动画之前和之后,没有成功.
在我看来,表头不更新并继续不可见.
首先,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;
}
Run Code Online (Sandbox Code Playgroud)
只需在表格返回viewHeader时调用动画.
| 归档时间: |
|
| 查看次数: |
1601 次 |
| 最近记录: |