【问题标题】:How to restore rounded corners for a UITableViewCell filled with an image?如何恢复填充图像的 UITableViewCell 的圆角?
【发布时间】:2009-11-18 13:57:19
【问题描述】:

我有一个 UITableViewCell,我想使用 image 属性来填充它。当它首先出现在分组的 UITableView 中时,我希望它具有标准的圆角。

不幸的是,图像也填充了圆角。有没有办法在不使用透明图像的情况下保留它们?

【问题讨论】:

    标签: objective-c iphone uitableview


    【解决方案1】:


    您可以使用其 layer 属性以编程方式对任何视图的角进行圆角处理。如果您使用图层的cornerRadius 属性,您应该能够获得您想要的结果。

    #include <QuartzCore/QuartzCore.h>
    
    UIImage *myImage = [UIImage imageNamed:@"image.png"];
    UIImageView *imgView = [[UIImageView alloc] initWithImage:myImage];
    imgView.layer.cornerRadius = 10.0;
    

    如果你只是想弄圆一些角落,你应该查看 UIBezierPath API 并使用路径来掩盖你的图像。这未经测试,但它应该为您指明正确的方向:

    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:cell.bounds
                                               byRoundingCorners:UIRectCornerTopLeft | UIRectCornerTopRight
                                                     cornerRadii:CGSizeMake(10.0, 10.0)];
    
    CAShapeLayer *maskLayer = [CAShapeLayer layer];
    maskLayer.frame = imageView.frame;
    maskLayer.path = path;
    imageView.layer.mask = maskLayer;
    

    【讨论】:

    • 对于第一个单元格,我只希望在右上角和左上角使用圆角,所以这并没有多大帮助。无论如何,谢谢
    • @johnl 我知道这已经过时了,但我已经更新了我的答案,包括一种只绕过某些角落的方法
    【解决方案2】:

    我刚刚使我的不透明图像具有圆角。截取屏幕截图以获取圆角的尺寸,然后将其用作图像的基础。

    【讨论】:

      猜你喜欢
      • 2022-01-01
      • 2015-02-18
      • 2019-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多