方法不起作用 - 定制单元格

时间:2015-02-28 17:37:34

标签: ios objective-c uitableview

我有自定义UITableViewCell类,我在其中编写了一个方法,以正确初始化单元格内容和外观。现在我希望细胞是圆形的并带有边框。首先,我写道:

-(void)cornerCell:(UITableViewCell*)cell withImageView:(UIImageView*)imageView{

    cell.imageView.layer.cornerRadius = 33;
    cell.imageView.clipsToBounds = YES;
    cell.separatorInset = UIEdgeInsetsMake(0, 82, 0, 0);
    cell.imageView.layer.borderWidth = 5.0;
}

然后,在我的方法(我用来填充单元格内容)中,我写了以下内容:

Declared in myCell.m


 -(void)fillCellWithTableViewIndex:(NSInteger)index withTableView:(UITableView*)myTableView withImageView:(UIImageView*)imageView{

...some code

[self cornerCell:self withImageView:self.myCellImageView];

在此之后,我在cellForRowAtIndexPath

中调用ViewController方法

在viewController.m中声明

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

...some code

[cell fillCellWithTableViewIndex:indexPath.row withTableView:tableView withImageView:cell.myCellImageView];

return cell;

}

它不起作用。但是,当我打电话

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

...some code 


    [cell fillCellWithTableViewIndex:indexPath.row withTableView:tableView withImageView:cell.myCellImageView];

    cell.myCellImageView.layer.cornerRadius = 33;
    cell.myCellImageView.clipsToBounds = YES;
    cell.separatorInset = UIEdgeInsetsMake(0, 82, 0, 0);
    cell.myCellImageView.layer.borderWidth = 5.0;

    return cell;

}

它的工作,但它看起来很丑陋,反对清晰简洁的代码的一般概念。为什么我的第一次尝试不起作用?

我希望我能清楚地描述一切,请试着找出问题所在。

2 个答案:

答案 0 :(得分:1)

在您的方法中,您没有使用传入的imageView,而是使用了单元格内置的cell.imageView,这显然不一样。

答案 1 :(得分:1)

-(void)cornerCell:(UITableViewCell*)cell withImageView:(UIImageView*)imageView{

    cell.imageView.layer.cornerRadius = 33;
    cell.imageView.clipsToBounds = YES;
    cell.separatorInset = UIEdgeInsetsMake(0, 82, 0, 0);
    cell.imageView.layer.borderWidth = 5.0;
}

为什么不使用imageView参数?

cell.imageView表示您使用了常见的.imageView属性,但似乎您需要cell.myCellImageView - 您的自定义属性