我有一个黑暗的背景,所以我非常喜欢第一张图像上的斜面效果。
我正在尝试在我的UIImageViews
上重新设置这些效果,以便在可变大小的图片中使用UITableViewCells
内部进行优化,但我无法找到一种完美运行的方法。
我也使用AFNetworking使用打包的UIImageView + AFNetworking类别异步加载单元格中的图像,所以我将图像加载到单元格中,如下所示:
NSURL *originalURL = [NSURL URLWithString:@"url"];
[[cell _image] setImageWithURL:originalURL];
_image只是我自定义表格单元格中的常规UIImageView
。
所以我的问题基本上就是你怎么做的?
答案 0 :(得分:2)
利用CALayers
框架中的QuartzCore
。
创建一个黑色背景和圆角的新图层。然后我们将图像作为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];