重新加载UITableView标题视图而不闪烁

时间:2014-11-18 11:52:33

标签: ios objective-c uitableview uiview

重新加载UITableView时,标题视图出现问题。实际上问题是在重新加载后意外地使整个视图闪烁。 我想动态地改变视图的高度,这个动画肯定是不需要的。 是否有可能摆脱这种情况。

要重新加载我使用的部分:

[self.table reloadSections:indexSet withRowAnimation:UITableViewRowAnimationNone];

2 个答案:

答案 0 :(得分:1)

- (void)swipeAction:(UIPanGestureRecognizer *)gesture
{
CGFloat posY = [gesture translationInView:self.view].y;
self.dynamicHeight = posY;

NSIndexSet *indexSet = [NSIndexSet indexSetWithIndex:0];
[self reloadSection:indexSet];
}



- (void)reloadSection:(NSIndexSet *)indexSet
{

[self.tblContainer beginUpdates];
[self.tblContainer reloadSections:indexSet withRowAnimation:UITableViewRowAnimationNone];
[self.tblContainer endUpdates];
}


- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{

UIViewController *vc = self.controllers[section];
if ([self.childViewControllers containsObject:vc]) {
} else {
    [self addChildViewController:vc];
    [vc didMoveToParentViewController:self];
}
return vc.view;
}



- (CGFloat)heightCell
{
return MIN_HEIGHT + dynamicHeight;
}



- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return [self.controllers[section] heightCell];
}

答案 1 :(得分:0)

嗯,可能你应该使用这种方法尝试指示何时开始和结束表视图的更新:

    [self.tableView beginUpdates];
    [self.table reloadSections:indexSet withRowAnimation:UITableViewRowAnimationNone];
    [self.tableView endUpdates];