私のアプリでは、複数列の tableView を iPad で表示したいと考えています。
だから、私は次のココアコントロールを使用しました:MultiColumn TableView
それは私にとってはうまくいきますが、行を別の色で表示したいです。
このため、コードを変更した場所を見つけることができません。
私のアプリでは、複数列の tableView を iPad で表示したいと考えています。
だから、私は次のココアコントロールを使用しました:MultiColumn TableView
それは私にとってはうまくいきますが、行を別の色で表示したいです。
このため、コードを変更した場所を見つけることができません。
- (void)tableView: (UITableView*)tableView willDisplayCell: (UITableViewCell*)cell forRowAtIndexPath: (NSIndexPath*)indexPath
{
if(indexPath.row % 2 == 0)
cell.backgroundColor = [UIColor redColor];
else
cell.backgroundColor = [UIColor whiteColor];
}
でindexPathを使用して cellForRowAtIndexPath
、目的の結果を取得します。
if( [indexPath row] % 2){
cell.backgroundColor=[UIColor whiteColor];
}
else{
cell.backgroundColor=[UIColor purpleColor];
}
このデリゲートメソッドは、実装しているクラスにありますUITableViewDelegate
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
.......
if (indexPath.row % 2 == 0) {
cell.backgroundColor = [UIColor lightGrayColor];
}
else
{
cell.backgroundColor = [UIColor darkGrayColor];
}
.......
return cell;
}
まず、各行のモジュラを取得する必要があります。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
.......
if (indexPath.row % 2 == 0) {
cell.backgroundColor = [UIColor lightGrayColor];
}
else
{
cell.backgroundColor = [UIColor darkGrayColor];
}
....
return cell;
}
- (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;
}
cellForRowメソッドで、indexPath.rowが2で割り切れるかどうかを確認し、最初の色を割り当てます。そうでない場合は、2番目の色を割り当てて、結果のセルを返します。
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()()
}
}
コードで cellForRowAtIndexPath を検索します。そのメソッドは、テーブルビューにセルを作成する責任があります。詳細については、カスタマイズされたセルの代替背景色を持つ UITableViewCell
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
}
}
インデックス path.row を 2 ずつインクリメントするループを実行し、そのループの本体で色を割り当てることができます。