我想更改指定部分中不同行(单元格)的大小和颜色,这样任何人都可以给我建议如何管理它。 实际上我在相同的视图上使用4节,我想改变单元格颜色和单元格大小 第4节我在“heightForRowAtIndexPath”方法中编写了以下代码
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.section==0)
{
return 44;
}
else if(indexPath.section==2)
{
return 44;
}
else if(indexPath.section==1)
{
return 100;
}
else
{
if (indexPath.row==0)
{
label6.frame=CGRectMake(0, 0, 320, 44);
label6.backgroundColor=[UIColor yellowColor];
return 44;
}
else if(indexPath.row==1)
{
return 100;
label6.frame=CGRectMake(0.0, 0,120,100);
label6.backgroundColor=[UIColor purpleColor];
label7 .frame=CGRectMake(122, 0,200,100);
label7.backgroundColor=[UIColor purpleColor];
}
else
{
label6.frame=CGRectMake(0.0, 0,120,40);
label7 .frame=CGRectMake(122, 0,200,40);
return 44;
}
}
}
谢谢&问候, 普里。
答案 0 :(得分:1)
现在从上面的问题来看,据我所知你想改变代码中某些部分的高度和单元格颜色,请尝试下面的代码
为了更改部分中特定单元格的高度,请复制+粘贴表格视图的行方法的高度,这是您在代码中已经完成的委托协议,这是我的代码中的视图
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { switch (indexPath.section) { case 0: if(indexPath.row ==2) { return 25; } break; case 1: if(indexPath.row ==2) { return 25; } break; } return tableView.rowHeight; }
现在在下一部分我所做的是更改某些行的单元格颜色,我希望代码是自我解释的。在索引路径方法中选择行的单元格并添加此代码。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } if(indexPath.section==0) { cell.textLabel.text = [arr objectAtIndex:indexPath.row]; if(indexPath.row ==2) { //changing cell color cell.backgroundColor = [UIColor grayColor]; } } else if(indexPath.section ==1) { if(indexPath.row ==2) { //changing cell color cell.backgroundColor = [UIColor blueColor]; } cell.textLabel.text = [arr1 objectAtIndex:indexPath.row]; } return cell; }
希望这会有所帮助.....
答案 1 :(得分:0)
您无法在tableView:heightForRowAtIndexPath:
方法中更改单元格的颜色。您需要在tableView:cellForRowAtIndexPath:
方法中执行此操作。但是,您应该在此方法中传递自定义高度。所以它会成为,
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
switch (indexPath.section) {
case 1:
return 100;
case 3:
if (indexPath.row == 1) {
return 100;
}
default:
return 44;
}
}
您可以在
中进行所有单元格自定义- (UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath {
...
if ( indexPath.section == 3 ) {
switch ( indexPath.row ) {
case 0:
cell.label6.frame=CGRectMake(0, 0, 320, 44);
cell.label6.backgroundColor=[UIColor yellowColor];
break;
case 1:
cell.label6.frame=CGRectMake(0.0, 0,120,100);
cell.label6.backgroundColor=[UIColor purpleColor];
cell.label7.frame=CGRectMake(122, 0,200,100);
cell.label7.backgroundColor=[UIColor purpleColor];
break;
default:
cell.label6.frame=CGRectMake(0.0, 0,120,40);
cell.label7.frame=CGRectMake(122, 0,200,40);
break;
}
}
}
假设label6
和label7
是cell
的成员。