如何在cellforrowatindexpath中更改contentView框架?

时间:2014-01-10 09:08:42

标签: ios uitableview

我制作了一个自定义单元格,我想更改contentView的框架。我的手机是CustomCell。

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

    NSLog(@"hey");
    static NSString *CellIdentifier = @"CustomCellReuseID";

    AbcCustomCell *cell = [tabel_Abc dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[AbcCustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    NSString *name= [arrayTabel_Abc objectAtIndex:indexPath.section];

    [cell setBackgroundColor:[UIColor clearColor]];


    [cell.label_CellList setText:name];

   cell.contentView.frame = CGRectMake (100,0,500,20);


    return cell;
    }

我有用         cell.contentView.frame = CGRectMake(100,0,500,20); 但它不适合我。我想更改customCell的contentView,任何人都可以指导我吗?提前谢谢。

3 个答案:

答案 0 :(得分:1)

您无法更改contentView。 UITableViewCell contentView的高度由– tableView:heightForRowAtIndexPath:委托方法确定,其宽度通常是tableView的宽度。

如果您可以将视图添加为contentView的子视图并更改视图的框架。

答案 1 :(得分:0)

您需要为单元格的contentView重新分配帧。

CGRect oldFrame = cell.contentView.frame;
cell.contentView.frame = CGRectMake( oldFrame.origin.x,
                                 oldFrame.origin.y, 
                                 oldFrame.size.width + 20, 
                                 oldFrame.size.height );

或者您可以使用自定义单元格

答案 2 :(得分:0)

您无法更改单元格的contentView框架。您可以使用

更改单元格的高度
tableView:heightForRowAtIndexPath:

但你无法改变宽度。

如果你想要分割器很大,你可以使用一个视图,如果你想要这样的话。

UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.contentView.frame.size.width - paddingX*2, 1)];
    separatorLineView.backgroundColor = [UIColor redColor];

[cell.contentView addSubview:separatorLineView];

您是否可以更具体地了解要更改的帧(是否超出范围)?