如何在 SWIFT 中的圆圈上绘制文本
how to draw a text on a circle in SWIFT
我不知道如何开始,所以我也没有任何代码。
到目前为止,我的研究指出,没有标准功能,必须由我们自己编写代码?
任何提示或确认?
更新 使用 Ashish 建议的 CoreTextArcView。
感谢您的帮助。
建议的示例项目对我有用。我可以看到上面有文字的蓝色圆圈。
但是将其集成到我的项目中时,我遇到了问题。
我做了以下
我将文件 "CoreTextArcView.h"
和 "CoreTextArcView.m"
添加到我的项目中。我可以在左侧的资源管理器中看到它们。
在我的 BridgingHeader.h 我添加了导入:#import "CoreTextArcView.h"
我添加了代码示例:
var arctext:CoreTextArcView = CoreTextArcView(框架:CGRectMake(50、50、200、200),字体:UIFont.systemFontOfSize(15),文本:"Hello this is radious arc with text",半径:85,arcSize: 130.0,颜色:UIColor.redColor())
arctext.backgroundColor = UIColor.clearColor()
self.view.addSubview(arctext)
-> 我在 CoreTextArcView.m
:
中遇到编译错误
/Users/user/Desktop/Prototypes/CoreTextArcView.m
/Users/user/Desktop/Prototypes/CoreTextArcView.m:99:14: 'release' is unavailable: not available in automatic reference counting mode
/Users/user/Desktop/Prototypes/CoreTextArcView.m:99:14: ARC forbids explicit message send of 'release'
/Users/user/Desktop/Prototypes/CoreTextArcView.m:100:21: 'retain' is unavailable: not available in automatic reference counting mode
/Users/user/Desktop/Prototypes/CoreTextArcView.m:100:21: ARC forbids explicit message send of 'retain'
/Users/user/Desktop/Prototypes/CoreTextArcView.m:144:33: Cast of Objective-C pointer type 'NSAttributedString *' to C pointer type 'CFAttributedStringRef' (aka 'const struct __CFAttributedString *') requires a bridged cast
/Users/user/Desktop/Prototypes/CoreTextArcView.m:190:63: Cast of C pointer type 'CTFontRef' (aka 'const struct __CTFont *') to Objective-C pointer type 'UIFont *' requires a bridged cast
/Users/user/Desktop/Prototypes/CoreTextArcView.m:298:37: Cast of C pointer type 'CTFontRef' (aka 'const struct __CTFont *') to Objective-C pointer type 'id' requires a bridged cast
/Users/user/Desktop/Prototypes/CoreTextArcView.m:307:24: 'autorelease' is unavailable: not available in automatic reference counting mode
/Users/user/Desktop/Prototypes/CoreTextArcView.m:307:24: ARC forbids explicit message send of 'autorelease'
有帮助吗?
通过使用这个库:https://github.com/javenisme/CurvaView
var arctext : CoreTextArcView = CoreTextArcView(frame: CGRectMake(50, 50, 200, 200), font: UIFont.systemFontOfSize(15), text: "Hello this is radious arc with text", radius: 85, arcSize: 130.0, color: UIColor.redColor())
arctext.backgroundColor = UIColor.clearColor()
self.view.addSubview(arctext)
删除一个文件的 arc,如下所示(从项目目标的构建阶段将 -fno-objc-arc
设置为该库的 .m 文件):
我不知道如何开始,所以我也没有任何代码。 到目前为止,我的研究指出,没有标准功能,必须由我们自己编写代码?
任何提示或确认?
更新 使用 Ashish 建议的 CoreTextArcView。
感谢您的帮助。 建议的示例项目对我有用。我可以看到上面有文字的蓝色圆圈。 但是将其集成到我的项目中时,我遇到了问题。 我做了以下
我将文件
"CoreTextArcView.h"
和"CoreTextArcView.m"
添加到我的项目中。我可以在左侧的资源管理器中看到它们。在我的 BridgingHeader.h 我添加了导入:
#import "CoreTextArcView.h"
我添加了代码示例:
var arctext:CoreTextArcView = CoreTextArcView(框架:CGRectMake(50、50、200、200),字体:UIFont.systemFontOfSize(15),文本:"Hello this is radious arc with text",半径:85,arcSize: 130.0,颜色:UIColor.redColor()) arctext.backgroundColor = UIColor.clearColor() self.view.addSubview(arctext)
-> 我在 CoreTextArcView.m
:
/Users/user/Desktop/Prototypes/CoreTextArcView.m
/Users/user/Desktop/Prototypes/CoreTextArcView.m:99:14: 'release' is unavailable: not available in automatic reference counting mode
/Users/user/Desktop/Prototypes/CoreTextArcView.m:99:14: ARC forbids explicit message send of 'release'
/Users/user/Desktop/Prototypes/CoreTextArcView.m:100:21: 'retain' is unavailable: not available in automatic reference counting mode
/Users/user/Desktop/Prototypes/CoreTextArcView.m:100:21: ARC forbids explicit message send of 'retain'
/Users/user/Desktop/Prototypes/CoreTextArcView.m:144:33: Cast of Objective-C pointer type 'NSAttributedString *' to C pointer type 'CFAttributedStringRef' (aka 'const struct __CFAttributedString *') requires a bridged cast
/Users/user/Desktop/Prototypes/CoreTextArcView.m:190:63: Cast of C pointer type 'CTFontRef' (aka 'const struct __CTFont *') to Objective-C pointer type 'UIFont *' requires a bridged cast
/Users/user/Desktop/Prototypes/CoreTextArcView.m:298:37: Cast of C pointer type 'CTFontRef' (aka 'const struct __CTFont *') to Objective-C pointer type 'id' requires a bridged cast
/Users/user/Desktop/Prototypes/CoreTextArcView.m:307:24: 'autorelease' is unavailable: not available in automatic reference counting mode
/Users/user/Desktop/Prototypes/CoreTextArcView.m:307:24: ARC forbids explicit message send of 'autorelease'
有帮助吗?
通过使用这个库:https://github.com/javenisme/CurvaView
var arctext : CoreTextArcView = CoreTextArcView(frame: CGRectMake(50, 50, 200, 200), font: UIFont.systemFontOfSize(15), text: "Hello this is radious arc with text", radius: 85, arcSize: 130.0, color: UIColor.redColor())
arctext.backgroundColor = UIColor.clearColor()
self.view.addSubview(arctext)
删除一个文件的 arc,如下所示(从项目目标的构建阶段将 -fno-objc-arc
设置为该库的 .m 文件):