【问题标题】:How can I achieve this effect (rounded corners, inner glow) on my UIImageViews?如何在我的 UIImageViews 上实现这种效果(圆角、内发光)?
【发布时间】:2013-02-20 08:25:01
【问题描述】:

我有一个深色背景,所以我非常喜欢第一张图片的斜面效果。

我正在尝试在我的 UIImageViews 上重新创建这些效果,优化后可在 UITableViewCells 内用于可变大小的图像,但我无法找到一种完美的方法。

我还使用 AFNetworking 异步加载单元格中的图像,使用打包的 UIImageView+AFNetworking 类别,因此我将图像加载到单元格中,如下所示:

NSURL *originalURL = [NSURL URLWithString:@"url"];
[[cell _image] setImageWithURL:originalURL];

_image 只是我的自定义表格单元格中的常规 UIImageView

所以我的问题基本上是,你会怎么做呢?

【问题讨论】:

    标签: ios uiimageview afnetworking effects


    【解决方案1】:

    利用QuartzCore 框架中的CALayers

    创建一个带有黑色背景和圆角的新图层。然后我们将图像作为 subLayer 添加到它。

    CALayer *sublayer = [CALayer layer];
    sublayer.backgroundColor = [UIColor blueColor].CGColor;
    sublayer.shadowOffset = CGSizeMake(0, 3);
    sublayer.shadowRadius = 5.0;
    sublayer.shadowColor = [UIColor blackColor].CGColor;
    sublayer.shadowOpacity = 0.8;
    sublayer.frame = CGRectMake(30, 30, 128, 192);
    sublayer.borderColor = [UIColor blackColor].CGColor;
    sublayer.borderWidth = 2.0;
    sublayer.cornerRadius = 10.0;
    [self.view.layer addSublayer:sublayer];
    
    CALayer *imageLayer = [CALayer layer];
    imageLayer.frame = sublayer.bounds;
    imageLayer.cornerRadius = 10.0;
    imageLayer.contents = (id) [UIImage imageNamed:@"myImage.png"].CGImage;
    imageLayer.masksToBounds = YES;
    [sublayer addSublayer:imageLayer];
    

    使用此代码提供发光效果。

    CABasicAnimation* animation1 = [CABasicAnimation animationWithKeyPath:@"opacity"];
    [animation1 setDuration:1.0];
    [animation1 setRepeatCount:INT_MAX];
    [animation1 setFromValue:[NSNumber numberWithFloat:0.0]];
    [animation1 setToValue:[NSNumber numberWithFloat:1.0]];
    [subLayer addAnimation:animation1 forKey:nil];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-02
      • 2016-05-25
      • 1970-01-01
      相关资源
      最近更新 更多