如何解决如何解决“无法将“CATextLayerAlignmentMode”类型的值分配给“String”类型的问题?
func createNewBubbleParentNode(_ text: String) -> SCNNode {
let billBoardConstraint = SCNBillboardConstraint()
billBoardConstraint.freeAxes = SCNBillboardAxis.Y
let bubble = SCNText(string: text,extrusionDepth: CGFloat(bubbleDepth))
var font = UIFont(name: "Futura",size: 0.15)
bubble.font = font
bubble.alignmentMode = kCAAlignmentCenter
return bubbleNodeParent
}
如何解决'无法将'CATextLayerAlignmentMode'类型的值分配给使用这种类型的函数输入'String'的问题?
感谢您的回答!!
洛伊克
解决方法
我认为您需要将 kCAAlignmentCenter
替换为 CATextLayerAlignmentMode.center.rawValue
您需要做的就是使用值 CATextLayerAlignmentMode.center.rawValue
。该值不仅用于 iOS,还用于 macOS。
bubble.alignmentMode = CATextLayerAlignmentMode.center.rawValue
这是一个完整的代码版本:
import ARKit
class ViewController: UIViewController {
@IBOutlet var sceneView: ARSCNView!
override func viewDidLoad() {
super.viewDidLoad()
sceneView.scene = SCNScene()
let textNode = self.createBubbleNode("SceneKit")
sceneView.scene.rootNode.addChildNode(textNode)
sceneView.session.run(ARWorldTrackingConfiguration())
}
func createBubbleNode(_ text: String) -> SCNNode {
let bubble = SCNText(string: text,extrusionDepth: 0.02)
bubble.font = UIFont(name: "Futura",size: 0.15)
bubble.firstMaterial?.diffuse.contents = UIColor.red
bubble.alignmentMode = CATextLayerAlignmentMode.center.rawValue
let bubbleNode = SCNNode(geometry: bubble)
return bubbleNode
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。