0

グループ化されたテーブル ビューのすべてのビューを取得して、ラベルの色を変更し、背景色を設定したいと考えています。

4

3 に答える 3

2

答えが見つかりました。テーブル ビュー セクションのヘッダー ビューを取得することはできません。ただし、デリゲートを実装tableView:viewForHeaderInSection:してヘッダー ビューとラベルを再作成することはできます。次のコードは、同じヘッダー ビューと正確なラベルを提供します。

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {

    NSString *sectionTitle = [self tableView:tableView titleForHeaderInSection:section];

    if (sectionTitle == nil) {
        return nil;
    }

    // Create label with section title
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20.0f, 5.5f, 300.0f, 30.0f)];
    label.backgroundColor = [UIColor clearColor];
    label.font = [UIFont boldSystemFontOfSize:16.5];
    label.shadowColor = [UIColor whiteColor];
    label.shadowOffset = CGSizeMake(0.0, 1.0);
    label.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;
    label.text = sectionTitle;

    // Create header view and add label as a subview
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, self.view.frame.size.width, 44.0f)];
    view.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;
    [view addSubview:label];

    return view;
}
于 2012-05-27T11:40:02.407 に答える
0

また、textColor を追加する必要があります。

 label.textColor = [UIColor colorWithRed:0.265 green:0.294 blue:0.367 alpha:1.000];
于 2012-07-20T08:32:58.050 に答える
0

解決策を見つけたのは素晴らしいことです。

いくつかの提案:

  1. フレームの幅に合わせて CGRect をハードコーディングしないで、幅に使用self.view.size.widthします (たとえば、横向きの場合や、Apple が異なる画面サイズの iPhone を導入した場合)。

  2. おそらくautoresizingMask、ラベルとラベルを保持するビューの両方に使用して、画面の向きが変わるとサイズが変更されるようにするか、向きの変更時に呼び出すようにしてください[self.tableview reloadData]。と

  3. これは明らかに単一行のラベルです...それがうまく機能する場合は、それ以外の場合はsizeWithFont:constrainedToSize:lineBreakMode、ラベル/ビューの作成とtableView:heightForHeaderInSection:.

于 2012-05-27T16:53:34.930 に答える