2016-11-10 60 views
-1

創建自定義2個時tableViews我使用此代碼:不能顯示headerVIew在泰伯維正確

UITableView *mainTableView=[[MainTableView alloc]init]; 
    [self.view addSubview:mainTableView]; 

我創建的headerView沒有顯示。

UITableView *mainTableView=[[MainTableView alloc]init]; 
self.view=mainTableView; 

此代碼顯示正確的視圖。我的headerView發生了什麼?

WRONGRIGHT

UPDATE:MainTableView.m

+(instancetype)createMainView 
{ 
    return [[self alloc]init]; 
} 
-(instancetype)initWithFrame:(CGRect)frame 
{ 
    self=[super initWithFrame:frame]; 
    [self addmainTableView]; 
    [self addHeadImageViewAndPageControl]; 
    [self addTitleLabelAndNavigationButton]; 
    return self; 
} 
#pragma mark -add view to main view 
-(void)addHeadImageViewAndPageControl 
{ 
    UIScrollView *headImageView=[[UIScrollView alloc]init]; 
    headImageView.frame=CGRectMake(0, 0, yScreenWidth, yScreenHeight/3); 
    headImageView.backgroundColor=[UIColor redColor]; 
    self.tableHeaderView=headImageView; 
    //add pagecontroll 
    UIPageControl *headPageControl=[[UIPageControl alloc]initWithFrame:CGRectMake(-100, yScreenHeight/3-30, yScreenWidth/3, 25)]; 
    headPageControl.numberOfPages=5; 
    headPageControl.pageIndicatorTintColor=[UIColor lightGrayColor]; 
    headPageControl.currentPageIndicatorTintColor=[UIColor whiteColor]; 
    headPageControl.currentPage=1; 
    [self.tableHeaderView addSubview:headPageControl]; 
} 

這是我headerView。

+0

頭什麼看法呢?您發佈的代碼不會嘗試創建或顯示任何標題視圖。 – rmaddy

+0

提供更多細節buddy @rmaddy是對的。 – sanman

回答

2

您的代碼的問題不是爲Tableview設置框架。在將tableView添加到self.view之前,放置下面的代碼。

self.tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; 

self.tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
+0

但爲什麼self.view = mainTableView;作品? – yangOne

+0

我不確定,但我想'self.view'默認適合屏幕。所以在這種情況下,mainTableView將自動適合原始的'self.view'。 – nynohu