我感兴趣的是,SKSpriteNode
是否可以模仿UIView
的行为,我可以指定边界和圆角半径?
self.view.layer.borderColor = [UIColor lightGrayColor].CGColor;
self.view.layer.borderWidth = 2;;
self.view.layer.cornerRadius = 2;
self.view.layer.masksToBounds = YES;
答案 0 :(得分:6)
以下是SKSpriteNode
的一个简单的dropin扩展,它将允许您在节点周围绘制具有给定颜色的边框。
import SpriteKit
extension SKSpriteNode {
func drawBorder(color: UIColor, width: CGFloat) {
let shapeNode = SKShapeNode(rect: frame)
shapeNode.fillColor = .clear
shapeNode.strokeColor = color
shapeNode.lineWidth = width
addChild(shapeNode)
}
}
答案 1 :(得分:4)
不是原生的。虽然您可以添加一个SKShapeNode作为您使用path
创建CGPathCreateWithRoundedRect
的孩子。
答案 2 :(得分:0)
extension SKSpriteNode {
func drawBorder(color: UIColor, width: CGFloat) {
for layer in self.children {
if layer.name == "border" {
layer.removeFromParent()
}
}
let imageSize = self.texture?.size()
let lineWidth = (imageSize!.width / self.size.width) * width
let shapeNode = SKShapeNode(rect: CGRect(x: -imageSize!.width/2, y: -imageSize!.height/2, width: imageSize!.width, height: imageSize!.height))
shapeNode.fillColor = .clear
shapeNode.strokeColor = color
shapeNode.lineWidth = lineWidth
shapeNode.name = "border"
shapeNode.zPosition = 1001
self.addChild(shapeNode)
self.zPosition = 1000
}
}