我对CALayer不太好,但我需要绘制加号(+),并且我不想使用图像,因为我想为绘图创建动画。任何帮助?使用CALayer绘制加号(+)
-2
A
回答
3
经过所有的反对票,我自己就可以做到了。以下是如何为其他人可能需要这个
CGFloat height = 2.f;
CGFloat width = 3.f;
CGFloat cornerRadius = 1.f;
CALayer *hLayer = [CALayer layer];//this is the left - right stroke
hLayer.frame = CGRectMake(0, CGRectGetMidY(self.bounds)-(height/2), width, height);
hLayer.cornerRadius = cornerRadius;
CALayer *vLayer = [CALayer layer];// this is the top - bottom stroke
vLayer.frame = CGRectMake(CGRectGetMidX(self.bounds) - (height/2), -3,height, width);
vLayer.cornerRadius = cornerRadius;
[self.layer addSublayer:hLayer];
[self.layer addSublayer:vLayer];
2
正如luk2302所说,请使用CAShapeLayer
。
您可以将CGPath
安装到CAShapeLayer
中。您可以从任何UIBezierPath
获得CGPath
。 (它有一个CGPath
属性,可以让你得到底层CGPath对象的任何UIBezierPath
。)
我建议在UIBezierPath上阅读。它有方法moveToPoint
和addLineToPoint
。
您将移动到加号的顶部,向下添加一行,然后移到加号的左侧并添加一行。
请注意,您还可以根据您之后的动画类型制作动画图像。你需要做什么样的动画?
0
另一种简单的方法是使用两个具有相同背景颜色的UIView,并将它们作为子视图添加到另一个UIView。然后,您可以使用UIView animateWithDuration:...方法来完成简单的动画。
相关问题
- 1. 将NSString绘制到CALayer中
- 2. 调用drawRect绘制CALayer的顶部?
- 3. 使用核心图形绘制阴影并使用CALayer
- 4. 使用UIView或CALayer绘图和动画?
- 5. 绘图虚线使用的CALayer
- 6. 在CALayer上绘制可滚动文本
- 7. 在OSx中的CALayer上绘制线条
- 8. 在CALayer中绘制核心图形
- 9. iPhone iOS如何使用drawLayer在CALayer上绘制文本:inContext:?
- 10. 如何使用CALayer绘制边框边框或文字?
- 11. 使用CABasicAnimation时,CALayer没有绘制它的内容
- 12. 使用破折号绘制段
- 13. 用Pyx绘制花括号
- 14. CALayer在背景中绘图
- 15. CALayer的重绘上旋转
- 16. ios:在自定义UITableViewCell崩溃应用程序中绘制CALayer
- 17. 加载3个视图控制器的滚动视图性能不佳,使用CALayer绘制
- 18. 如何使用子类化定制CALayer
- 19. 复制CALayer
- 20. 使用CALayer创建加载屏幕
- 21. 将CALayer添加到UIView并具有重新绘制方向更改的功能
- 22. 使用CALayer for UITableViewCell
- 23. 使用NSScrollView与CALayer
- 24. 使用MouseListener绘制加权树
- 25. 使用Cordova添加可绘制资源
- 26. 使用Direct2D加载并绘制PNG
- 27. 使用Core Animation/CALayer进行简单的分层绘画
- 28. iphone/ipad - 如何在CALayer中绘制CGRect imageview?
- 29. Objective-C中CALayer中的绘制圆弧和矩形
- 30. CALayer不绘制在自定义UIView的范围内
创建两个'CAShapeLayer'形成一个加号,问题在哪里?如果您故意让这种情况变得更加困难,您可能需要先自行找到解决方案。 – luk2302
为什么不画两条贝塞尔路径,一条是水平线,一条是垂直线? –