gpt4 book ai didi

ios - 如何旋转 CAShapeLayer

转载 作者:行者123 更新时间:2023-11-29 11:58:27 25 4
gpt4 key购买 nike

我正在尝试相对于特定 anchor 旋转 CAShapeLayer。但是当我申请firstLayer.transform = CATransform3DMakeRotation(CGFloat(M_2_PI), 0, 0, 0)没有任何反应。

我正在制作一个自定义的 UIButton ,我正在其中添加一个层

import UIKit

@IBDesignable

class CustomButtonTwo: UIButton {
var context = UIGraphicsGetCurrentContext()
@IBInspectable var Thickness : CGFloat = 2

let firstLayer = CAShapeLayer()
var width = CGFloat()
var height = CGFloat()

override func awakeFromNib() {
super.awakeFromNib()
width = self.frame.width
height = self.frame.height
print("\(width) : \(height)")
}
override func drawRect(rect: CGRect) {
super.drawRect(rect)
let afirstStartPoint = CGPointMake(width * 0.1, (height - 3 * Thickness) / 6)
let bfirstStartPoint = CGPointMake(width * 0.1, (height - 3 * Thickness) / 6 + Thickness)
let afirstMiddlePoint = CGPointMake(width * 0.5, (height - 3 * Thickness) / 6 )
let bfirstMiddlePoint = CGPointMake(width * 0.5, (height - 3 * Thickness) / 6 + Thickness)
print(afirstMiddlePoint)
print(afirstStartPoint)
print(bfirstMiddlePoint)
print(bfirstStartPoint)
let firstPath = UIBezierPath()
firstPath.moveToPoint(afirstStartPoint)
firstPath.addLineToPoint(afirstMiddlePoint)
firstPath.addLineToPoint(bfirstMiddlePoint)
firstPath.addLineToPoint(bfirstStartPoint)
firstPath.addLineToPoint(afirstStartPoint)
firstPath.closePath()
firstLayer.frame = self.frame
UIColor.greenColor().setFill()
firstPath.fill()

firstLayer.path = firstPath.CGPath
firstLayer.anchorPoint = afirstStartPoint
firstLayer.transform = CATransform3DMakeRotation(CGFloat(M_2_PI), 0, 0, 1)
layer.addSublayer(firstLayer)
}



}

我想制作一条具有特定粗细的线并沿特定点旋转它(同时设置动画)。任何帮助表示赞赏!

simulator Screenshot

最佳答案

2_PI (360) 旋转意味着图层最终会回到原来的位置(0 度旋转)。尝试 PI_2 (90)PI (180) 或其他角度。您还需要指定旋转轴。

此调用围绕 z 轴旋转 90 度:

CATransform3DMakeRotation(CGFloat(M_PI_2), 0, 0, 1.0)

关于ios - 如何旋转 CAShapeLayer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38098270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com