2009-04-19 11 views
2

スクロールが有効な場合、UITableViewがスクロールするUIViewを取得しようとしています。通常、背景は白です。その境界からUITableViewを押し出すと、背景が表示されます。私はこの背景をblackColorのUIColorに設定しようとしています。タグを付けるのに適切なものを見つけることができないようです。私は私のUIViewControllerで次のコードを試しました:UITableViewがスクロールするUIViewを見つける

- (void)loadView 
{ 
    [super loadView]; 
    UITableView *aTableView = 
     [[[UITableView alloc] 
      initWithFrame:self.view.bounds 
      style:UITableViewStylePlain] autorelease]; 

    [aTableView setScrollEnabled:YES]; 
    [self.view setBackgroundColor:[UIColor blackColor]]; 
    [self.view addSubview:aTableView]; 
    self.tableView = aTableView; 
} 

色はまだ白のままです。私は間違ったUIViewを打っているようだ。

ありがとう。

答えて

0

解決策はありませんが、私は提案があります。あなたは、UITableViewのbackgroundColorを透明にし、スーパービューの色を白に設定しようとしましたか?

+0

こんにちは、私は私のUITableViewにblackColorが浸透しないようにしています。私はそれのための通常のスタイリングが欲しいです。テーブルがその範囲外にスクロールされたときの背景を見たいだけです。 – Coocoo4Cocoa

0

私はあなたが望むものを達成することができましたが、私には回避策のようです(おそらくライブラリにバグがあります)。

まず、UITableViewでbackgroundColorプロパティを黒に設定する必要があります。あなたが新しいのUITableViewCellを作成するときに

その後、あなたはこのような何か(このコードはのUITableViewのデータソースになります)実行する必要があります。あなたが白にcontentViewの背景色を設定する必要が

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    static NSString *MyIdentifier = @"MyIdentifier"; 

    // Try to retrieve from the table view a now-unused cell with the given identifier 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier]; 

    // If no cell is available, create a new one using the given identifier 
    if (cell == nil) { 
     cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease]; 
    } 
    cell.contentView.backgroundColor = [UIColor whiteColor]; 

    UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 60, 20)] autorelease]; 
    label.text = @"test"; 
    label.textColor = [UIColor blackColor]; 
    [cell.contentView addSubview:label]; 
    cell.textColor = [UIColor blackColor]; 

    return cell; 
} 

を、しかし、あなたがそれをすると、セルのテキストが表示されなくなるので、UILabelをそのコンテンツビューに追加し、自分でテキストを書き込む必要があります。

背景色を変更するのは残念ですが、おそらくUITableViewCellの背景色をUITableViewを含むものとは異なる設定にするバグがあります。

0

Hmm .. cellForRowAtIndexPathメソッドでセルの背景色を設定する同様の問題が発生します。 解決方法は、コールバックメソッド willDisplayCellの背景色を設定することでした。

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    cell.backgroundColor = (indexPath.row % 2 == 0) ? DARK_BACKGROUND : LIGHT_BACKGROUND; 
} 
関連する問題