19

iOS6の場合

[uitableview setBackgroundColor:]テーブルスタイルがUITableViewStyleGroupedの場合に色を設定しない

代わりに、デフォルトの縞模様の背景が表示されます。

スタイルがUITableViewStyleGroupedの場合、テーブルの背景をどのように設定する必要がありますか

4

8 に答える 8

31
[tableViewInstance setBackgroundView: nil];
于 2012-09-13T16:46:48.013 に答える
19

設定

[tableView setBackgroundView: nil];

iOS 5で問題が発生するので、私が使用しているのは次のとおりです。

UIView* bview = [[UIView alloc] init];
bview.backgroundColor = [UIColor yellowColor];
[tableView setBackgroundView:bview];

iOS5、6対応!

于 2012-09-21T15:02:38.720 に答える
5
self.view.backgroundColor = TTSTYLEVAR(mainPageBackground);
self.tableView.separatorColor   = TTSTYLEVAR(mainPageBackground);
self.tableView.backgroundView = nil;

私のためにそれを修正しました。ただし、これが他にどのような影響を与える可能性があるかに注意する必要があります。

于 2012-09-13T16:40:37.950 に答える
4

別の簡単な解決策は、IB で UITableView の背景色を変更することです。たとえば「白色」に変更すると、再び機能しました。

どういうわけか、背景色を「デフォルト」のままにしておくと、iOS 6 はコードで行われた他の色設定を気にしなくなります。

于 2012-09-21T10:12:07.130 に答える
3

backgroundView を nil に設定することに注意してください。私の経験では、これにより、最新の XCode 4.5 でユーザーがスクロールしているときに、レンダリング パフォーマンスが大幅に低下します。スクロールのパフォーマンスに影響を与えなかったこの問題に対する私の解決策は次のとおりです。

- (void) viewWillLayoutSubviews
{
    CGRect rect = [[UIScreen mainScreen] bounds];
    CGRect frame = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height);

    UIView *backgroundView = [[[UIView alloc] initWithFrame:frame] autorelease];
    backgroundView.backgroundColor = [UIColor clearColor];
    self.tableView.backgroundView = backgroundView;
}
于 2012-09-20T00:17:52.080 に答える
1

これはすでに回答済みとしてマークされていることは知っていますが、次の方法も同様に機能します。

[[UITableView appearance] setBackgroundColor:[UIColor colorWithRed:233.0/255.0 green:233.0/255.0 blue:233.0/255.0 alpha:1.0]];

[[UITableView appearance] setBackgroundView:nil];

この方法では、アプリで各 tableView を設定する必要はありません。元のヒントの作者に感謝します !

于 2013-02-26T04:16:53.693 に答える
1

iOS 6 では、グループ化されたテーブル ビューのメソッド、つまり backgroundColor は廃止されたため、代わりに使用します

[tableview setBackgroundView : nil];
于 2013-02-06T04:15:21.980 に答える
0

背景を nil に設定するとうまくいきます。はい、以前のバージョンでは問題はありません。

于 2012-12-17T05:23:54.863 に答える