UITableViewCell圆形图像视图

时间:2016-04-02 09:23:12

标签: ios objective-c uitableview uiimageview

我有一个UITableView UITableViewCell,我希望将cell.imageView作为圈子。所以我在cellForrowAtIndex

中做了这个
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier = @"SimpleTableCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];


    if (cell == nil) {

        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:simpleTableIdentifier];




    }

    cell.backgroundColor=[UIColor clearColor];

    cell.imageView.layer.cornerRadius=cell.imageView.frame.size.width/2;
    cell.imageView.layer.masksToBounds=YES;
    cell.imageView.layer.borderWidth = 2.0f;
    cell.imageView.layer.borderColor=[UIColor whiteColor].CGColor;

但是当加载表UIImage s是正方形时,然后当我滚动时它变成圆圈。我怎么解决这个问题? 请帮我。 感谢

4 个答案:

答案 0 :(得分:1)

以下是代码

[cell.imgview setImage:[UIImage imageWithData:imgData]];
cell.imgview.layer.cornerRadius = cell.img_userpic.frame.size.height /2;
cell.imgview.layer.masksToBounds = YES;
cell.imgview.layer.borderWidth = 0;

您的Imageview的宽度和高度应该相同,否则它不会显示圆圈。

答案 1 :(得分:0)

在cellForRow方法中使用以下代码行。对于圆,您必须设置图层的cornerradius并将clipsToBounds属性设置为YES

  cell.imageView.clipsToBounds = YES;

答案 2 :(得分:0)

您需要通过继承UITableViewCell创建自定义单元格,然后在该类中配置单元格。

在其中实施awakeFromNib方法,并根据需要在此方法中设置图片视图。

答案 3 :(得分:0)

试试这段代码

UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(-30, 40, 100, 100)];
        imageView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;
        imageView.layer.masksToBounds = YES;
        imageView.layer.cornerRadius = 50.0;
        imageView.layer.shadowRadius=5;
        imageView.layer.shadowOpacity=4;
        imageView.layer.shadowColor=(__bridge CGColorRef)([UIColor blackColor]);
        imageView.layer.borderColor = [UIColor whiteColor].CGColor;
        imageView.layer.borderWidth = 3.0f;
        imageView.layer.rasterizationScale = [UIScreen mainScreen].scale;
        imageView.layer.shouldRasterize = YES;
        imageView.clipsToBounds = YES;