2012-03-16 11 views
0

UITableViewのヘッダービューの幅をUITableViewの全幅よりも小さく設定する方法はありますか?今度は、viewView:viewForHeaderInSection:によって返されたビューをどのくらい幅広く設定するかによって、ヘッダービューはUITableViewの幅に引き伸ばされます。ここでUITableViewヘッダービューの幅を設定する方法は?

は私のコードです:

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UIView *label = [[UIView alloc] initWithFrame: CGRectMake(0, 0, 50, 50)]; 
    label.backgroundColor = [UIColor yellowColor]; 
    label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin; 
    return label; 
} 

答えて

2

はこれを試してみてください。私はあなたの質問を理解している場合、これは確かにあなたのため

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 30, 60)]; 
    headerView.backgroundColor = [UIColor clearColor]; 

    UIView *label = [[UIView alloc] initWithFrame: CGRectMake(0,0, 50, 50)]; 
    label.backgroundColor = [UIColor yellowColor]; 
    label.autoresizingMask = UIViewAutoresizingFlexibleRightMargin; 

    [headerView addSubview:label]; 
    return headerView; 
} 
+1

両方のレスポンダーに感謝します。彼のアプローチが私の問題を解決したので、私はバラの答えをクリックしています。ただし、厳密に言えば、返されたヘッダービューは、tableviewを横切って引き伸ばされています。これは、背景色を赤に変更すると明らかになります。私はまだこれがどうして起こるのか不思議ですが、少なくとも私のアプリには仕上げのタッチを置くことができます。 –

0

シンプルなソリューション:UIViewAutoresizingプロパティ柔軟右余白あなたheaderViewを与えている間、何が、あなたの希望ヘッダビューが含まれていないUIViewを返すので、それはそれでだスケールませんスーパービュー(または多分柔軟な左マージン、または両方、あなたが望むものに応じて;))。

+0

に動作します、私はそれを試してみました。それはうまくいかなかった。 –

+0

いくつかのコードを投稿できますか?あなたはエラーを起こさなければならない、私が説明した解決策が失敗する可能性はない。 – Ahti

2
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 

{ 
    int aSection = [[self.sectionsToDisplay objectAtIndex:section] integerValue]; 

    if([[self.groupHeadings objectAtIndex:aSection] isEqualToString:@""]) 

     return nil; 

    return [self.groupHeadings objectAtIndex:aSection]; 

} 
関連する問題