web-dev-qa-db-ja.com

UITableViewは背景色を設定します

tableView:cellForRowAtIndexPathメソッドでUITableViewCellsの背景色を変更します

    if(indexPath.row % 2 == 0){
        cell.backgroundColor = ...
    } else{
        cell.backgroundColor = ...
    }

しかし、それはtableView:numberOfRowsInSectionで指定されたセル量の色のみを変更します(添付の図に見られるように、最初の4つの後に白いセルがあります)

画面に表示されるすべてのセルの色を変更することはできますか?

enter image description here

19
Sp0tlight

セルの背景色を引き続き交互に表示する場合は、テーブル内の行数を指定する必要があります。具体的には、tableView:numberOfRowsInSectionで常に画面を埋める数値を返す必要があり、tableView:cellForRowAtIndexPathで、末尾を超える行に対して空白のセルを返しますテーブルの。次のコードは、self.dataArrayがNSStringのNSArrayであると仮定して、これを行う方法を示しています。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if ( self.dataArray.count < 10 )
        return( 10 );
    else
        return( self.dataArray.count );
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"SimpleCell"];

    if ( indexPath.row % 2 == 0 )
        cell.backgroundColor = [UIColor orangeColor];
    else
        cell.backgroundColor = [UIColor redColor];

    if ( indexPath.row < self.dataArray.count )
        cell.textLabel.text = self.dataArray[indexPath.row];
    else
        cell.textLabel.text = nil;

    return cell;
}
17
user3386109
  1. ストーリーボードを開く
  2. UITableViewを選択します
  3. 属性インスペクターを開く
  4. ビューグループまでスクロール
  5. テーブル全体の背景色を選択します。

enter image description here

39
Keenle

このようにしてみてください:-

self.tableView.backgroundView.backgroundColor = [UIColor blueColor];
12
Hussain Shabbir

これを使用して、テーブルビューの代替セルに色を付けました

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell,
    forRowAtIndexPath indexPath: NSIndexPath) {

        if (indexPath.row % 2 == 0)
        {
            cell.backgroundColor = UIColor.grayColor()
        }
        else
        {
            cell.backgroundColor = UIColor.whiteColor()
        }
}
2
Irshad Qureshi

Swiftでは、tableviewの背景色を変更したり、画像をtableviewの背景色に設定したりできます。

override func viewDidLoad() {
    super.viewDidLoad()
    self.navigationController?.view.backgroundColor = UIColor(patternImage: UIImage(named: "background.png")!)
    self.tableView.backgroundColor = UIColor.clearColor()
}


//    change cell text color and background color
override func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) {
        cell.backgroundColor = UIColor.clearColor()
}
2
ethemsulan

Swiftの場合

@Irshad Qureshiのおかげで、cellForRowAtIndexPathに以下を追加することで、プロトタイプセルの背景色を交互に変えることができました。

if (indexPath.row % 2 == 0)
    {
        cell!.backgroundColor = UIColor.groupTableViewBackgroundColor()
    }
    else
    {
        cell!.backgroundColor = UIColor.whiteColor()
    }
1
A.J. Hernandez

テーブルビューのbackgroundViewnilに設定し、そのbackgroundColorを目的の色に設定する必要があります。

1
NRitH