IOS表格视图不会在表格视图向上滚动时隐藏区段标题
问题描述:
我创建了一个自定义表格视图并以编程方式将它添加到表格视图控制器内的表格视图中。并且我设置了表格视图滚动时标题视图不会滚动。 对于表格视图中的每个部分,还有一个部分标题。 问题是,当向下滚动时,表格标题视图不会隐藏部分标题。 在viewdidload中,banner是一个从UIView继承的自定义类。IOS表格视图不会在表格视图向上滚动时隐藏区段标题
- (void)viewDidLoad {
[super viewDidLoad];
self.automaticallyAdjustsScrollViewInsets = NO;
self.tableView.showsVerticalScrollIndicator = NO;
//adjust table view position
self.tableView.tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, HeadImgHeight)];
self.navigationController.navigationBarHidden = YES;
[self.navigationController setToolbarHidden:NO];
//add table header view
self.banner = [[Banner alloc] initWithFrame:CGRectMake(0, 0, ScreenWidth, HeadImgHeight)];
self.banner.offsetPoint = CGPointMake(ScreenWidth/2, HeadImgHeight-20);
[self.tableView addSubview:self.banner];
另外,由于我想当卷轴,我实现scrollViewDidScrll功能
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat offsetY = scrollView.contentOffset.y;
if (offsetY < 0) {//scroll down
self.banner.frame = CGRectMake(0, 0, ScreenWidth, HeadImgHeight);
self.banner.offsetPoint = CGPointMake(ScreenWidth/2, self.banner.frame.size.height-20);
[self.banner.MonthInComeLabel setFrame:CGRectMake(ScreenWidth/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_ICON_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT, TITLE_WIDTH, TITLE_HEIGHT)];
[self.banner.MonthOutComeLabel setFrame:CGRectMake(ScreenWidth*3/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_ICON_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT, TITLE_WIDTH, TITLE_HEIGHT)];
[self.banner.MonthInDetailLabel setFrame:CGRectMake(ScreenWidth/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_DETAIL_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT, TITLE_WIDTH, TITLE_HEIGHT)];
[self.banner.MonthOutDetailLabel setFrame:CGRectMake(ScreenWidth*3/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_DETAIL_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT, TITLE_WIDTH, TITLE_HEIGHT)];
}else{
if (offsetY<=30) {
self.banner.frame = CGRectMake(0, self.tableView.contentOffset.y, ScreenWidth, HeadImgHeight-offsetY);
self.banner.offsetPoint = CGPointMake(ScreenWidth/2, self.banner.frame.size.height-20);
[self.banner.MonthInComeLabel setFrame:CGRectMake(ScreenWidth/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_ICON_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT-offsetY, TITLE_WIDTH, TITLE_HEIGHT)];
[self.banner.MonthOutComeLabel setFrame:CGRectMake(ScreenWidth*3/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_ICON_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT-offsetY, TITLE_WIDTH, TITLE_HEIGHT)];
[self.banner.MonthInDetailLabel setFrame:CGRectMake(ScreenWidth/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_DETAIL_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT-offsetY, TITLE_WIDTH, TITLE_HEIGHT)];
[self.banner.MonthOutDetailLabel setFrame:CGRectMake(ScreenWidth*3/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_DETAIL_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT-offsetY, TITLE_WIDTH, TITLE_HEIGHT)];
}else{
self.banner.frame = CGRectMake(0, self.tableView.contentOffset.y, ScreenWidth, HeadImgHeight-BANNER_FLEXIBLE_LENGTH);
self.banner.offsetPoint = CGPointMake(ScreenWidth/2, self.banner.frame.size.height-20);
[self.banner.MonthInComeLabel setFrame:CGRectMake(ScreenWidth/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_ICON_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT-BANNER_FLEXIBLE_LENGTH, TITLE_WIDTH, TITLE_HEIGHT)];
[self.banner.MonthOutComeLabel setFrame:CGRectMake(ScreenWidth*3/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_ICON_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT-BANNER_FLEXIBLE_LENGTH, TITLE_WIDTH, TITLE_HEIGHT)];
[self.banner.MonthInDetailLabel setFrame:CGRectMake(ScreenWidth/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_DETAIL_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT-BANNER_FLEXIBLE_LENGTH, TITLE_WIDTH, TITLE_HEIGHT)];
[self.banner.MonthOutDetailLabel setFrame:CGRectMake(ScreenWidth*3/4 - TITLE_WIDTH/2, HeadImgHeight-MONTH_DETAIL_BOTTOM_MARGIN-TOTAL_OUT_HEIGHT-BANNER_FLEXIBLE_LENGTH, TITLE_WIDTH, TITLE_HEIGHT)];
}
}
}
[屏幕快照时没有滚动]头部视图不消失[1]
[向下滚动屏幕截图,没问题] [2]
screen shot when scroll up, as you can see the section header is over the table header view
任何想法?
答
FYI检查你使用的是什么样的UITableView的:
typedef enum {
UITableViewStylePlain,
UITableViewStyleGrouped
} UITableViewStyle;
你可以用一种错误的,尽量使用分组
我不能告诉实际的问题是在这里。但是节标题并不打算向上滚动,直到下一节到达顶部。在这一点上,你在哪里滚动的部分标题会向上滚动(离开)。 – pnizzle
如果你的部分标题滚动你可能会让他们tableview单元格,而不是标题意见(只是一个建议,如果这是你在之后)。 – pnizzle