如何让UITableViewHeaderFooterView不停在顶端
3个回答
展开全部
一、tableviewcell
我首先尝试了将titleview放在每个section的第一个cell里,问题很快就来了
当cell滑出屏幕,再滑进来,重用cell的时候,底下的cell会遮住上面的cell。
二、UITableViewHeaderFooterView
我将titleview作为UITableViewHeaderFooterView,放在每个section头部,问题随之而来
UITableViewHeaderFooterView会停留在顶部,与下面的cell重叠。感觉挺奇怪的。
三、方法二的解决办法
我尝试在tableview滚动的时候计算高度,并隐藏titleview,终于让我找到了一个方法:
//去掉UItableview headerview黏性(sticky)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView == self.tableView)
{
CGFloat sectionHeaderHeight = 64; //sectionHeaderHeight
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);
}
}
}
方法起作用了
我首先尝试了将titleview放在每个section的第一个cell里,问题很快就来了
当cell滑出屏幕,再滑进来,重用cell的时候,底下的cell会遮住上面的cell。
二、UITableViewHeaderFooterView
我将titleview作为UITableViewHeaderFooterView,放在每个section头部,问题随之而来
UITableViewHeaderFooterView会停留在顶部,与下面的cell重叠。感觉挺奇怪的。
三、方法二的解决办法
我尝试在tableview滚动的时候计算高度,并隐藏titleview,终于让我找到了一个方法:
//去掉UItableview headerview黏性(sticky)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView == self.tableView)
{
CGFloat sectionHeaderHeight = 64; //sectionHeaderHeight
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);
}
}
}
方法起作用了
展开全部
一、tableviewcell
我首先尝试了将titleview放在每个section的第一个cell里,问题很快就来了
当cell滑出屏幕,再滑进来,重用cell的时候,底下的cell会遮住上面的cell。
二、UITableViewHeaderFooterView
我将titleview作为UITableViewHeaderFooterView,放在每个section头部,问题随之而来
UITableViewHeaderFooterView会停留在顶部,与下面的cell重叠。感觉挺奇怪的。
三、方法二的解决办法
我尝试在tableview滚动的时候计算高度,并隐藏titleview,终于让我找到了一个方法:
//去掉UItableview headerview黏性(sticky)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView == self.tableView)
{
CGFloat sectionHeaderHeight = 64; //sectionHeaderHeight
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);
}
}
}
方法起作用了
我首先尝试了将titleview放在每个section的第一个cell里,问题很快就来了
当cell滑出屏幕,再滑进来,重用cell的时候,底下的cell会遮住上面的cell。
二、UITableViewHeaderFooterView
我将titleview作为UITableViewHeaderFooterView,放在每个section头部,问题随之而来
UITableViewHeaderFooterView会停留在顶部,与下面的cell重叠。感觉挺奇怪的。
三、方法二的解决办法
我尝试在tableview滚动的时候计算高度,并隐藏titleview,终于让我找到了一个方法:
//去掉UItableview headerview黏性(sticky)
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView == self.tableView)
{
CGFloat sectionHeaderHeight = 64; //sectionHeaderHeight
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);
}
}
}
方法起作用了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
创建tableView时设置UITableViewStyle:UITableViewStyleGrouped
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询