ios - 设置 CAShapeLayer 的线帽

标签 ios objective-c quartz-graphics

当我尝试运行一行代码时弹出一个非常奇怪的错误。

我有一个 CAShapeLayer 的子类,我试图在其上设置线帽样式。我想使用圆帽样式,但是当我添加这段代码时:

[self setLineCap: kCGLineCapRound];

构建失败,我收到此错误和警告:

Implicit conversion of 'int' to 'NSString *' is disallowed with ARC

Incompatible integer to pointer conversion sending 'int' to parameter of type 'NSString *'

但是如果我添加这个:

[self setLineCap: kCGLineCapButt];

它构建得很好。为什么它打破了另一种线帽类型?这是 Quartz 的问题/错误吗?


相关信息。

  • iOS SDK 8.1
  • Xcode 6.1.1
  • 部署目标 iOS 7.0

最佳答案

CAShapeLayer 使用 kCALineCap***,它是 CAShapeLayer.h 文件中定义的常量字符串,而不是作为枚举一部分的 kCGLineCap***。

关于ios - 设置 CAShapeLayer 的线帽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28549804/

相关文章:

objective-c - NSTextField 添加行间距

objective-c - Segue 未出现在图像选择器之后

ios - 在 UIImage imageNamed 中使用外部图像

R 版本不支持 quartz 图形设备 - RStudio 不会绘图

ios - 查看动画不适用于 shadowRadius iOS

ios - 在动画期间保持 CAShapeLayer 蒙版静态

ios - 如何缓存图片ios

ios - 有关 iOS 上网络状态变化的通知

ios - 如何从 PHAssetCollection 中删除图像?

iphone - 使用 CALayer 时无法编译代码