我在 tableView:cellForRowAtIndexPath 方法中更改了UITableViewCells的背景颜色
if(indexPath.row % 2 == 0){
cell.backgroundColor = ...
} else{
cell.backgroundColor = ...
}
但是这只会改变 tableView:numberOfRowsInSection 中指定的单元格数量的颜色(如附图所示,前四个后面有白色单元格)
是否可以更改屏幕上显示的所有单元格的颜色?
答案 0 :(得分:38)
答案 1 :(得分:17)
如果您希望单元格背景颜色继续交替,那么您需要说明表格中有多少行。具体来说,在 tableView:numberOfRowsInSection 中,您需要始终返回一个将填充屏幕的数字,并在 tableView:cellForRowAtIndexPath 中,为超出结尾的行返回一个空白单元格的表。以下代码演示了如何执行此操作,假设 self.dataArray 是NSStrings的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;
}
答案 2 :(得分:10)
试试这样: -
self.tableView.backgroundView.backgroundColor = [UIColor blueColor];
答案 3 :(得分:2)
我用它在表格视图中为备用单元格着色
func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell,
forRowAtIndexPath indexPath: NSIndexPath) {
if (indexPath.row % 2 == 0)
{
cell.backgroundColor = UIColor.grayColor()
}
else
{
cell.backgroundColor = UIColor.whiteColor()
}
}
答案 4 :(得分:2)
在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()
}
答案 5 :(得分:1)
您需要将tableview的backgroundView
设置为nil
,将backgroundColor
设置为所需的颜色。
答案 6 :(得分:1)
适用于SWIFT
感谢@Irshad Qureshi,通过在我的cellForRowAtIndexPath中添加以下内容,我能够为原型单元格获取交替的背景颜色:
if (indexPath.row % 2 == 0)
{
cell!.backgroundColor = UIColor.groupTableViewBackgroundColor()
}
else
{
cell!.backgroundColor = UIColor.whiteColor()
}
答案 7 :(得分:0)
快速5及以上
override func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) {
//Set Clear Backcolor
//cell.backgroundColor = .clear
//or in your case
if ( indexPath.row % 2 == 0 )
cell.backgroundColor = .orange
else
cell.backgroundColor = .red
}