我使用可扩展特定部分的节标题构建UITableView
。我正在使用.xib文件中的自定义视图UITableViewHeaderView
。我想设置HeaderView
的边距值,使其不是全宽,并在向下滚动时保持在顶部(不是全高)。
正如您在动画中看到的那样,视图具有全宽 - 是否可以在标题中添加边距,以便在HeaderView
和屏幕边缘之间留出一些空格。
如果滚动UITableView
,我想减小粘性标题的高度 - 这样屏幕顶部只显示按钮的文字。我已经从UIScrollView
实现了以下委托命令,该命令工作正常,但它减少了第一个HeaderView
的边距,使其移动到导航栏后面(参见动画) - 我该如何避免?
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
CGFloat sectionHeaderHeight = 20;
if (scrollView.contentOffset.y<=sectionHeaderHeight&&scrollView.contentOffset.y>=0) {
scrollView.contentInset = UIEdgeInsetsMake(-scrollView.contentOffset.y, 0, 0, 0);
} else if (scrollView.contentOffset.y>=sectionHeaderHeight) {
scrollView.contentInset = UIEdgeInsetsMake(-sectionHeaderHeight, 0, 0, 0);
}
}
答案 0 :(得分:1)
设置高度当然可以通过设置框架来完成,但您也可以使导航栏不是半透明的,这样可以节省大量的编码。
[self.navigationController.navigationBar setTranslucent:NO];
如果您想更改高度,您的代码将类似于:
CGRect frame = header.frame;
frame.size.height = 44;
header.frame = frame;
[self.tableView setTableHeaderView:header];