2016-08-05 40 views
0

我試圖自定義故事板中的tableHeaderView,問題是,似乎tableHeaderView具有固定的大小。當我運行這個程序時,它看起來像這樣: my custom headerView如何更改故事板中tableHeaderView的高度?

實際上,兩個灰色的UILabel是我的headerView的一部分,但正如你所看到的,它有固定的大小。我已經嘗試過改變我headerView的大小viewDidLoad中:

UIView *headerView = self.tableView.tableHeaderView; 
    CGRect frame = headerView.frame; 
    frame.size = CGSizeMake(frame.size.width, frame.size.width/2.6); 
    headerView.frame = frame; 
    [self.tableView updateConstraintsIfNeeded]; 

PS:我已經看到了一些類似的問題,但他們只是updateConstraintsIfNeeded解決了這個問題,但我不知道它不」 t適合我。我的Xcode版本是7.2,謝謝!

+0

添加約束高度和分配給它的動態值。 –

+0

你試過 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section; –

+0

@SaadChaudhry嗯,我試過使用heightForHeaderInSection,有趣的是,它只是在我的自定義headerView下添加另一個頭。 –

回答

0

只需按照代碼:

UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(x, y, width, height)]; 
UILabel *labelView = [[UILabel alloc] initWithFrame:CGRectMake(x, y, width, height)]; 
labelView.text = @"Some Text"; 

[headerView addSubview:labelView]; 
self.tableView.tableHeaderView = headerView; 
+0

但是這樣我得到了一個空白區域,我已經在故事板中製作了自定義標題,我只需要改變它的高度。 –

+0

白色空間是您在標題中添加的UIView。您需要添加一個標籤以在標題中提供一些文本。 –

+0

我更新了答案。只要按照它 –

0

你用自動版式的工作?請點擊此

- (void)sizeHeaderToFit 
{ 
    UIView *header = self.tableView.tableHeaderView; 

    [header setNeedsLayout]; 
    [header layoutIfNeeded]; 

    CGFloat height = [header systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height; 
    CGRect frame = header.frame; 

    frame.size.height = height; 
    header.frame = frame; 

    self.tableView.tableHeaderView = header; 
} 
+0

看來這不適合我。 –

0

你爲什麼不能創建一個自定義UIView子類,並在其中添加標籤?

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return 100;//whatever size you want 
} 

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    let sectionInfo = fetchedResultsController!.sections! as [NSFetchedResultsSectionInfo] 

    let headerView = CustomView() 
    headerView.backgroundColor = UIColor.redColor() 
    headerView.addLabels()//add two labels in this method 
    return headerView 
} 
+0

嗯,我只是想嘗試在故事板中製作自定義headerView。 –

+0

@WeiDu:然後創建一個並添加帶有約束的標籤,提供您想要的任何高度! – D4ttatraya

1

試試這個代碼

headerView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
相關問題