13

私のアプリでは、複数列の tableView を iPad で表示したいと考えています。

だから、私は次のココアコントロールを使用しました:MultiColumn TableView

それは私にとってはうまくいきますが、行を別の色で表示したいです。

このため、コードを変更した場所を見つけることができません。

4

13 に答える 13

45
- (void)tableView: (UITableView*)tableView willDisplayCell: (UITableViewCell*)cell forRowAtIndexPath: (NSIndexPath*)indexPath
{
 
        if(indexPath.row % 2 == 0)
              cell.backgroundColor = [UIColor redColor];
        else
              cell.backgroundColor = [UIColor whiteColor];
}
于 2013-03-19T11:09:49.977 に答える
9

でindexPathを使用して cellForRowAtIndexPath、目的の結果を取得します。

    if( [indexPath row] % 2){
          cell.backgroundColor=[UIColor whiteColor];
    } 
    else{
          cell.backgroundColor=[UIColor purpleColor];
    }

このデリゲートメソッドは、実装しているクラスにありますUITableViewDelegate

于 2013-03-19T11:05:16.033 に答える
6
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    .......

    if (indexPath.row % 2 == 0) {
       cell.backgroundColor = [UIColor lightGrayColor];
    }
    else
    {
        cell.backgroundColor = [UIColor darkGrayColor];
    }
    .......

    return cell;
}
于 2013-03-19T11:05:43.557 に答える
5

まず、各行のモジュラを取得する必要があります。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    .......

    if (indexPath.row % 2 == 0) {
       cell.backgroundColor = [UIColor lightGrayColor];
    }
    else
    {
        cell.backgroundColor = [UIColor darkGrayColor];
    }
    ....


    return cell;
}
于 2013-03-19T11:20:40.913 に答える
2
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

 
static NSString *CellIdentifier = @"Cell";
    
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
    if(indexPath.row%2==0)
        cell.contentView. backgroundColor=[UIColor redColor];
    else
        cell.contentView.backgroundColor=[UIColor greenColor];

        


return cell;


}
于 2013-03-19T11:05:13.800 に答える
1

cellForRowメソッドで、indexPath.rowが2で割り切れるかどうかを確認し、最初の色を割り当てます。そうでない場合は、2番目の色を割り当てて、結果のセルを返します。

于 2013-03-19T11:04:40.257 に答える
1
func colorForIndex(index: Int) -> UIColor 
{
    let itemCount = stnRepos.count - 1
    let color = (CGFloat(index) / CGFloat(itemCount)) * 0.6
    return UIColor(red: 0.80, green: color, blue: 0.0, alpha: 1.0)
}

func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell,
    forRowAtIndexPath indexPath: NSIndexPath) 
{        
    if (indexPath.row % 2 == 0)
    {
        cell.backgroundColor = colorForIndex(indexPath.row)
    } else {
        cell.backgroundColor = UIColor.whiteColor()()
    }
}
于 2016-02-11T07:28:21.313 に答える
1

コードで cellForRowAtIndexPath を検索します。そのメソッドは、テーブルビューにセルを作成する責任があります。詳細については、カスタマイズされたセルの代替背景色を持つ UITableViewCell

于 2013-03-19T11:03:41.403 に答える
1

Swift 3 + で不透明度を下げた場合:

func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {

        if(indexPath.row % 2 == 0) {
            cell.backgroundColor = UIColor.red.withAlphaComponent(0.05)
        } else {
            cell.backgroundColor = UIColor.white
        }
}
于 2017-10-26T19:45:29.263 に答える
0

インデックス path.row を 2 ずつインクリメントするループを実行し、そのループの本体で色を割り当てることができます。

于 2013-03-19T11:03:24.510 に答える