- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我可以使用 CGContextDrawRadialGradient
制作一个球体,它可以将 alpha 淡化到 UIColor.clearColor
并且它可以工作。
但是,我正在尝试做这种事情:
虽然在周围放置一些战略球体会产生有趣的效果(类似于战略位置的 LED 背光),但我希望获得真正的发光效果。 如何在 drawRect
中围绕圆角矩形绘制光晕?
最佳答案
您可以使用 CGContextSetShadowWithColor
在任何路径周围创建发光效果,但您无法精确控制外观。特别是,默认阴影相当轻:
我知道让它变暗的唯一方法是再次在其自身上绘制:
不是最优的,但它非常接近您想要的。
这些图像是由以下 drawRect
生成的:
- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGMutablePathRef path = CGPathCreateMutable();
int padding = 20;
CGPathMoveToPoint(path, NULL, padding, padding);
CGPathAddLineToPoint(path, NULL, rect.size.width - padding, rect.size.height / 2);
CGPathAddLineToPoint(path, NULL, padding, rect.size.height - padding);
CGContextSetShadowWithColor(context, CGSizeZero, 20, UIColor.redColor.CGColor);
CGContextSetFillColorWithColor(context, UIColor.blueColor.CGColor);
CGContextAddPath(context, path);
CGContextFillPath(context);
// CGContextAddPath(context, path);
// CGContextFillPath(context);
CGPathRelease(path);
}
要记住的一件事是渲染模糊阴影相当昂贵,这可能会或可能不会成为问题,具体取决于您的 View 重绘的频率。如果阴影不需要动画,请考虑将它们渲染到 UIImage
一次,然后只在 UIImageView
中显示结果。
关于ios - 非圆形发光的 CGContextDrawRadialGradient,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10080405/
我可以使用 CGContextDrawRadialGradient 制作一个球体,它可以将 alpha 淡化到 UIColor.clearColor 并且它可以工作。 但是,我正在尝试做这种事情: 虽
我尝试绘制一个渐变点,但 CGGradientCreateWithColors 总是返回 nil。我是 Swift 和 Objective C 的新手(今天开始,但用 Xamarin 制作了一些应用程
我需要一个椭圆形或椭圆形的径向渐变,似乎 CGContextDrawRadialGradient 只能绘制一个完美的圆形。我一直在绘制方形上下文,然后复制/绘制到矩形上下文中。 有没有更好的方法来做到
我的 UIView 子类的 drawRect: 函数有问题。我在其中使用了 CGContextDrawRadialGradient(),它也是。当用户拖动我的 UIView 时,如果我包含渐变,它就很
我有下面的图,它呈现了一个中心全彩色的圆,边缘的 alpha 渐变为 0。将其绘制到屏幕上时,它看起来很完美。但是,当我在 PDF 上下文 (CGPDFContextCreate) 中绘制相同的东西时
我是一名优秀的程序员,十分优秀!