UITableview 向上滚动 UISectionHeader 的一半
Posted
技术标签:
【中文标题】UITableview 向上滚动 UISectionHeader 的一半【英文标题】:UITable view scrolled up by half of UISectionHeader 【发布时间】:2015-10-19 06:32:18 【问题描述】:我的 UITableView 总是向上滚动可能是部分标题的一半。 我有一个 44 像素高度的自定义部分标题。
在向下滚动并释放焦点后,表格视图会到达合适的位置。该错误仅在初始化后发生。
这是我的viewDidLoad
代码:
[self.tableView removeUsslessSeparators];
[self.tableView setEstimatedRowHeight:50];
[self.tableView setEstimatedSectionHeaderHeight:0];
[self.tableView setSectionIndexColor:[UIColor colorWithHexString:@"#000000"]];
[self.tableView setSectionIndexBackgroundColor:[UIColor whiteColor]];
[self.tableView setRowHeight:UITableViewAutomaticDimension];
[self.tableView setSectionHeaderHeight:UITableViewAutomaticDimension];
[self.tableView registerNib:[VOIOrbitContactsListSectionHeader nibRepresentation] forHeaderFooterViewReuseIdentifier:[VOIOrbitContactsListSectionHeader preferredIdentifier]];
[self.tableView registerNib:[VOIOrbitContactCell nibRepresentation] forCellReuseIdentifier:[VOIOrbitContactCell preferredIdentifier]];
self.searchBarController = [VOISearchBarController searchViewControllerWithDelegate:self];
[self containerAddChildViewController:self.searchBarController toContainerView:self.searchControllerContainer useAutolayout:YES];
[self.searchControllerContainerTopOffsetConstraint setConstant:75];
[self.tableViewTopOffsetConstraint setConstant:self.searchControllerContainerTopOffsetConstraint.constant + 4] ;
[self.tableView setContentInset:UIEdgeInsetsMake( self.searchControllerContainerHeightConstraint.constant , 0, 50, 0)];
// CGPoint offset = self.tableView.contentOffset;
// self.tableView.contentOffset = offset;
// [self.tableView setContentOffset:CGPointZero animated:NO];
[self checkIfPlusButtonNeedsToBeHidden];
[NSNotificationCenter addObserverForName:VOCChangeNotificationNameForEntity([VOCOrbit class]) usingBlock:^(NSNotification *note)
[self.tableView reloadData];
];
我试图使用不同的解决方案以编程方式向下滚动表格视图。但它们都不起作用。
【问题讨论】:
【参考方案1】:[self.searchControllerContainerTopOffsetConstraint setConstant:75];
[self.tableViewTopOffsetConstraint setConstant:self.searchControllerContainerTopOffsetConstraint.constant + 4] ;
不要使用内容偏移,而是直接将表格的位置提供给:
[self.table setframe:CGRectMake(0,0,width,height)];
然后,将您的标题框架作为表头传递
table.tableHeaderView = yourHeaderView;
希望,这对你有用。
【讨论】:
以上是关于UITableview 向上滚动 UISectionHeader 的一半的主要内容,如果未能解决你的问题,请参考以下文章
UITableview 向上滚动 UISectionHeader 的一半
NSFetchedResultsController 添加新记录时如何防止 UITableView 向上滚动?