【问题标题】:Rounded Rect / Rounded corners for images in UITableViewUITableView 中图像的圆角矩形/圆角
【发布时间】:2011-07-26 15:53:12
【问题描述】:

我使用这个类别并为我的 UITableView 创建所有图像大小相同。有没有办法让图像也有圆角?谢谢!

+ (UIImage *)scale:(UIImage *)image toSize:(CGSize)size
{
    UIGraphicsBeginImageContext(size);
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
}

编辑:然后我获取图像和其他对象信息以将其放入 NSDictionary 以进入 UITableView。我尝试更改 cellForRowAtIndexPath 中的 UIImageView.layer 属性,但似乎没有成功:

cell.TitleLabel.text = [dict objectForKey:@"Name"];
cell.CardImage.image = [dict objectForKey:@"Image"];
cell.CardImage.layer.cornerRadius = 5.0;

【问题讨论】:

    标签: iphone uiimage calayer


    【解决方案1】:

    您可以在绘图操作中添加剪辑,UIBezierPath 类让这变得超级简单。

    将您的代码扩展到:

    + (UIImage *)scale:(UIImage *)image toSize:(CGSize)size
    {
        UIGraphicsBeginImageContext(size);
        CGRect rect = CGRectMake(0, 0, size.width, size.height);
        [[UIBezierPath bezierPathWithRoundeRect:rect cornerRadius:5] addClip];
        [image drawInRect:rect];
        UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return scaledImage;
    }
    

    【讨论】:

    • 仅供参考,bezierPathWithRoundedRect:rect 中缺少一个“d”。我只是编辑答案,但至少要更改 6 个字符才能编辑某些内容。只是想我会指出,以防其他人花时间试图弄清楚为什么没有已知方法“bezierPathWithRoundeRect:rect”并错过了错字:) 非常好的答案
    • 这种方法会导致 Retina 设备的边角模糊。这很好用:stackoverflow.com/a/4334902/1022589
    【解决方案2】:

    试试这个

    image.layer.cornerRadius = 5;
    

    【讨论】:

      【解决方案3】:
      1. 包含 QuartzCore 框架。
      2. 导入 CALayer.h
      3. image.layer.cornerFRadius = 5;

      【讨论】:

        【解决方案4】:

        正如 Sisu 和 the.evangelist 所说:image.layer.cornerRadius = 5;

        但您可能还需要添加:

        [image.layer setMasksToBounds:YES];

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-04-15
          • 2010-12-14
          • 1970-01-01
          相关资源
          最近更新 更多