我尝试了大部分解决方法来设置单元格中imageview
的角半径。
但是,它仍会显示一个框。我怎么解决这个问题?
cell.imageView.image=[UIImage imageNamed:@"def.png"];
cell.imageView.layer.cornerRadius=cell.imageView.frame.size.width/2;
cell.imageView.layer.borderWidth=3.0f;
cell.imageView.layer.borderColor=[UIColor redColor].CGColor;
cell.imageView.layer.masksToBounds = YES;
cell.imageView.layer.shouldRasterize = YES;
答案 0 :(得分:1)
尝试将masksToBounds
替换为clipsToBounds
cell.imageView.layer.cornerRadius = cell.imageView.frame.size.width/2
cell.imageView.clipsToBounds = YES
请确保cell.imageView.frame.size.width
中的宽度正确,例如,如果您在宽度计算后将代码移至UIImageView
viewDidLayoutSubviews
的宽度使用autolayout
视图可以选择限制其子视图的绘制,以便任何 视图外部的部分未显示。这称为剪辑 并使用视图的
clipsToBounds
属性进行设置。
答案 1 :(得分:1)
尝试导入QuartzCore
然后使用UIImageView的图层属性,如下所示:
yourImageView.layer.cornerRadius = 10.0f;
yourImageView.clipsToBounds = YES;
答案 2 :(得分:0)
我认为该单元格会覆盖imageView。
尝试在layoutSubviews
方法中粘贴该代码,或者向该单元格添加第二个imageView。
在代码中,layoutSubviews选项看起来像这样:
-(void)layoutSubviews
{
[super layoutSubviews];
cell.imageView.image=[UIImage imageNamed:@"def.png"];
cell.imageView.layer.cornerRadius=cell.imageView.frame.size.width/2;
cell.imageView.layer.borderWidth=3.0f;
cell.imageView.layer.borderColor=[UIColor redColor].CGColor;
cell.imageView.layer.masksToBounds = YES;
cell.imageView.layer.shouldRasterize = YES;
}
对于像这样的第二个imageView:
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"def.png"]];
imageView.frame = CGRectMake(0, 0, 44, 44);
imageView.layer.cornerRadius = imageView.frame.size.width/2;
imageView.layer.borderWidth = 3.0f;
imageView.layer.borderColor = [UIColor redColor].CGColor;
imageView.layer.masksToBounds = YES;
imageView.layer.shouldRasterize = YES;
[self addSubview:imageView];
答案 3 :(得分:0)
你只是缺少clipsToBounds声明。
cell.imageView.clipsToBounds = YES;
添加此内容并告诉我结果是什么......
如果这不起作用,请尝试使用cell.clipsToBounds = YES;
当然,它会起作用......