Iphone 如何向UIImage或UIImageView或UIView添加外部辉光

Iphone 如何向UIImage或UIImageView或UIView添加外部辉光,iphone,cocoa-touch,uiimageview,uiimage,core-graphics,Iphone,Cocoa Touch,Uiimageview,Uiimage,Core Graphics,我想给UIImage/UIImageView/UIView添加一个褪色的阴影/外发光,但我根本不知道核心图形 编辑: 请帮忙 出于性能考虑,iPhone操作系统不支持shadowColor、shadowOffset、shadowOpacity和shadowRadius属性,这些属性通常可以在Cocoa中使用。大多数人多次复制他们想要发光的形状,每次降低不透明度并将形状偏移一个像素,以模拟发光的外观。如果您的光晕不需要很大,您就无法分辨差异。采用Cirrostratus概述的方法,保留其缓存副本,

我想给
UIImage
/
UIImageView
/
UIView
添加一个褪色的阴影/外发光,但我根本不知道
核心图形

编辑:
请帮忙

出于性能考虑,iPhone操作系统不支持shadowColor、shadowOffset、shadowOpacity和shadowRadius属性,这些属性通常可以在Cocoa中使用。大多数人多次复制他们想要发光的形状,每次降低不透明度并将形状偏移一个像素,以模拟发光的外观。如果您的光晕不需要很大,您就无法分辨差异。

采用Cirrostratus概述的方法,保留其缓存副本,然后在拖动时应用变换来更改图像的大小和/或位置

(警告,这不是功能代码/测试代码,但应该让您开始)

然后,在方法中,在缩放时,您可以执行以下操作:

// assumes UIImage *cachedImage = [self addGlowToImage:origImage]; has been called already.
// assumes ivars for scale exists

    CGRect newRect = cachedImage.bounds;
    newRect.size.width += scale;
    newRect.size.height += scale;

    [cachedImage drawInRect:newRect];  // image will be scaled to fill destination rectangle.

一定要看看苹果的文档。一个很好的起点是。

您可以使用这个,简单而快速,它可以使用uiview、取消按钮等:

UIView *shadowView = [[UIView alloc] initWithFrame:CGRectMake(100, 66, 112, 112)];
shadowView.layer.shadowColor = [[UIColor blackColor] CGColor];
shadowView.layer.shadowOpacity = .4;
shadowView.layer.shadowOffset = CGSizeZero;
shadowView.layer.masksToBounds = NO;
如果可以使用收音机,请添加以下内容:

shadowView.layer.shadowRadius = 10.0f;

如果视图每秒更新多次,这将占用大量性能。我正在使用
touchesMoved
事件更改大小。好的,这不完全是我想要的,但我接受,我想要淡入淡出。如果您更改颜色,也可以使用阴影属性作为辉光。简单易行。2010年,当答案被提出时,它是合适的。如果您不喜欢这种方法,请使用一些新的api提供更好的答案。@MarkMolina我同意Chip Coons的观点。如果你不喜欢这种方法,就自己提供一个更好的答案,而不是批评别人的答案。这根本没用,当然有用。它警告毫无戒心的程序员错误的代码,也许他们可以改进代码。我不想在代码上唠叨。人们在这些主题上投入时间是很好的,但我只是说代码不是最优的
shadowView.layer.shadowRadius = 10.0f;