我有自定义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;
}
它的工作,但它看起来很丑陋,反对清晰简洁的代码的一般概念。为什么我的第一次尝试不起作用?
我希望我能清楚地描述一切,请试着找出问题所在。
答案 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
- 您的自定义属性