Tag: 核心graphics

使用Core Animation完成自定义animation – 性能

文章 https://www.objc.io/issues/12-animations/animating-custom-layer-properties/ 对于使用Core Animation完成自定义animation有这个说法: 假设我们不是使用单独的图层来实现我们的钟面,而是使用Core Graphics绘制时钟。 (一般情况下 ,这将会有较差的性能 ,但是可以想象,我们可能想要实现的复杂绘图操作难以使用普通图层属性和变换进行复制。)我们将如何实现这一点? 换句话说,我们使用CG手动绘制CA的每一帧,因为我们的animation太复杂,只能使用内置的CALayerfunction。 问题是关于劣质的performance 。 由于CG在CPU上运行,这是否会阻塞主线程? 这可能是使用SpriteKit而不是CA的原因(因为SpriteKit在GPU上运行,不会阻塞主线程)?

平滑手绘的自由形状

我正在创build一个允许用户进行手绘的应用程序。 问题是我在用户移动他的手指点之间画线,所以造成的形状有点锯齿状。 我的问题是如何平滑绘图? 处理这种情况的最好的algorithm是什么?

Siri聊天泡泡颜色在iOS中

我尝试在核心graphics中创buildSiri聊天泡泡。 我正处于一个可以绘制形状的阶段。 我被卡在这里的颜色。 Wanaa获取边框颜色和填充颜色代码。 这是我迄今为止所做的。 – (void)drawInContext:(CGContextRef)context { CGRect rect = gradientRectFrame; CGFloat radius = 30; CGFloat originBufferX = 0.0; CGFloat originBufferY = 0.0; CGFloat rightAngleTriangleWidth = 20.0; CGFloat rightAngleTriangleHeight = 20.0; CGFloat fullRectWidth = rect.size.width; CGFloat fullRectHeight = rect.size.height; CGPoint pointZero = CGPointMake(originBufferX, fullRectHeight); CGPoint pointOne = CGPointMake(originBufferX + rightAngleTriangleWidth, fullRectHeight – rightAngleTriangleHeight); CGPoint […]

以编程方式创build在UINavigationBarButton中find的缩进外观

我试图以编程方式重新创build可以在UINavigationBarButton上看到的缩进button外观。 不是shiny的双色调或渐变,只是外围的阴影: 它看起来像整个视野周围的阴影,在顶部稍暗一些? 然后在低视图周边附近突出一个外部阴影。 我已经玩了一些Core Graphics,用QuartzCore和shadow.layer.shadowRadius和.shadowOffset进行了实验,但是甚至无法让低亮显示看起来正确。 我也不确定从哪里开始实现内部偏移暗阴影和外部偏移光阴影。

CGContext与CALayer

我试图在Quartz 2D上find一个句柄,并在Mac OS X开发人员的在线书籍石英二维graphics 。 一个非常基本的东西,让我困惑的是CGContext。 例如,我可以用下面的代码绘制一个简单的“U”形状,并在CAShapeLayer使用它,而无需引用CGContext 。 CAShapeLayer默认情况下是否隐含/提供了上下文? 我可能在这里混合了几个iOS / OSXgraphicsAPI,所以也许有人可以澄清我的错在哪里。 CGPoint pt1 = CGPointMake(100, 100); CGPoint pt2 = CGPointMake(150, 100); CGPoint pt3 = CGPointMake(150, 200); CGPoint pt4 = CGPointMake(190, 200); CGPoint pt5 = CGPointMake(190, 100); CGPoint pt6 = CGPointMake(210, 100); CGPoint pt7 = CGPointMake(210, 250); CGPoint pt8 = CGPointMake(100, 250); CGPoint pt9 = […]

有像iOS的JUNG的可视化框架?

有像iOS的JUNG的可视化框架? 我想实现类似的东西。

如何在UILabel上创build强烈的红色发光效果

我需要如上所述在UILabel(或CATextLayer)上实现外部发光效果。 我知道创build文字发光效果,我需要阴影与偏移量(0,0)。 我已经接触到quartz2D级别,以下是我正在使用的代码: _backgroundDownLabel.layer.shadowColor = self.glowColor.CGColor; // red _backgroundDownLabel.layer.shadowOffset = CGSizeMake(0, 0); _backgroundDownLabel.layer.shadowOpacity = 1; _backgroundDownLabel.layer.shadowRadius = self.glowAmount; // tried 1-10 _backgroundDownLabel.layer.masksToBounds = NO; 问题:当我使用RGB(1,0,0)颜色作为阴影颜色来创build红色发光时,结果太微妙,这意味着红色发光不够强烈。 另一方面,客户端devise师给我发了一个PSD文件,其中的辉光色彩明亮而强烈。 我想这不是一个简单的发光,但一些Photoshop的filter,也许外发光或一些组合。 那么,有代码的方式,我可以做类似的事情吗?

带透明渐变的UITableView顶部和底部

我已经search了这个论坛,谷歌和其他论坛,并没有find我的特定问题的答案。 基本上,我有一个包含UITableView的UIView 。 我遵循这个教程 ,它是部分成功的。 问题是渐变。 我有一个背后的UITableView背景图像。 所以随着细胞接近渐变,我想要显示背景,而不是白色。 我也发现这篇文章是我在哪里find的教程,但我不想用Matt自己的问题来劫持那篇文章。 任何帮助正确的方向将是伟大的! 编辑1:我知道我可以使用另一个图像的背景图像和中间切出,但我正在寻找AVOIDS使用PNG的解决scheme,如果可能的话。 编辑2:这是我现在得到的图像: EDIT3: 这是我的代码: 标题: @interface MyView : UIViewController { CAGradientLayer *_maskLayer; UITableView *_tableView; } @property (nonatomic, retain) CAGradientLayer *maskLayer; @property (nonatomic, retain) IBOutlet UITableView *tableView; 执行: @implementation HighScoresView_iPhone @synthesize tableView = _tableView; @synthesize maskLayer = _maskLayer; – (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; if (![self maskLayer]) […]

使用Core Animation更改cornerRadius

我正在尝试按以下方式更改button(OpenNoteVisible.layer)的圆angular半径: CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"cornerRadius"]; animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; animation.fromValue = [NSNumber numberWithFloat:10.0f]; animation.toValue = [NSNumber numberWithFloat:0.0f]; animation.duration = 1.0; [animation.layer setCornerRadius:140.0]; [OpenNoteVisible.layer addAnimation:animation forKey:@"cornerRadius"]; 但是这段代码在[animation.layer setCornerRadius:140.0]处给出了一个错误; 我不明白为什么。 我已经导入了Quartz核心框架。

closures使用closePath函数的贝塞尔path和手动closures之间有什么区别?

我正在尝试使用UIBezierPath做一个矩形。 我采取了两种不同的方式来绘制它。 另外,我增加了行程宽度为25像素。 第一种方法:使用closePath UIBezierPath *bpath = [UIBezierPath bezierPath]; [bpath moveToPoint:CGPointMake(x, y)]; [bpath addLineToPoint:CGPointMake(x + w, y)]; [bpath addLineToPoint:CGPointMake(x + w, y + h)]; [bpath addLineToPoint:CGPointMake(x, y + h)]; [bpath closePath]; 输出: 第二种方法:手动closurespath UIBezierPath *bpath = [UIBezierPath bezierPath]; [bpath moveToPoint:CGPointMake(x, y)]; [bpath addLineToPoint:CGPointMake(x + w, y)]; [bpath addLineToPoint:CGPointMake(x + w, y + h)]; [bpath addLineToPoint:CGPointMake(x, […]