2016-05-15 27 views
0

我創建了一個自定義表格視圖並以編程方式將它添加到表格視圖控制器內的表格視圖中。並且我設置了表格視圖滾動時標題視圖不會滾動。 對於表格視圖中的每個部分,還有一個部分標題。 問題是,當向下滾動時,表格標題視圖不會隱藏部分標題。 在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

任何想法?

+0

我不能告訴實際的問題是在這裏。但是節標題並不打算向上滾動,直到下一節到達頂部。在這一點上,你在哪裏滾動的部分標題會向上滾動(離開)。 – pnizzle

+0

如果你的部分標題滾動你可能會讓他們tableview單元格,而不是標題意見(只是一個建議,如果這是你在之後)。 – pnizzle

回答

0

FYI檢查你使用的是什麼樣的UITableView的:

typedef enum { 
    UITableViewStylePlain, 
    UITableViewStyleGrouped 
} UITableViewStyle; 

你可以用一種錯誤的,儘量使用分組

相關問題