gpt4 book ai didi

ios - 缩放 CGPath & Class.Type 没有名为 nameHere 的成员

转载 作者:行者123 更新时间:2023-11-29 02:06:13 26 4
gpt4 key购买 nike

我正在创建一个使用 CGRect 框架初始化的 UIButton(从 CGPath 绘制),但它不会缩放到其 View 的大小。

相反,我正在尝试缩放路径,但 Xcode 似乎对我正在做的事情不太满意。

class MenuButton : UIButton {
let shortStrokeOrig: CGPath = {
let path = CGPathCreateMutable()
CGPathMoveToPoint(path, nil, 2, 2)
CGPathAddLineToPoint(path, nil, 28, 2)

return path
}()

let outlineOrig: CGPath = {
let path = CGPathCreateMutable()
CGPathMoveToPoint(path, nil, 10, 27)
// Blah blah more curves....
CGPathAddCurveToPoint(path, nil, 13.16, 2.00, 2.00, 13.16, 2, 27)

return path
}()

let shortStroke: CGPath = CGPathCreateCopyByTransformingPath(shortStrokeOrig, CGAffineTransformMakeScale(0.5, 0.5))
let outline: CGPath = CGPathCreateCopyByTransformingPath(outlineOrig, CGAffineTransformMakeScale(0.5, 0.5))
}

出现错误 MenuButton.Type 没有名为 shortStrokeOrig 的成员,outlineOrig 也是如此。

不确定为什么会提示。或者如果有人对如何扩展我的路径有更好的建议..

最佳答案

问题出在shortStroke常量初始化 - CGPathCreateCopyByTransformingPath(shortStrokeOrig, CGAffineTransformMakeScale(0.5, 0.5))

问题:

  • shortStrokeOrig - 声明为实例变量,但您将其用作类变量。
  • CGPathCreateCopyByTransformingPath 的第二个参数类型功能是UnsafePointer<CGAffineTransform>不是CGAffineTransform .

解决方案

  • 制作shortStrokeOrigoutlineOrig一个类变量
  • 将 CGAffineTransform 作为引用传递(创建一个变量并在将其传递给函数时使用 &)

代码:

class MenuButton : UIButton {
static let shortStrokeOrig: CGPath = {
let path = CGPathCreateMutable()
CGPathMoveToPoint(path, nil, 2, 2)
CGPathAddLineToPoint(path, nil, 28, 2)

return path
}()

static let outlineOrig: CGPath = {
let path = CGPathCreateMutable()
CGPathMoveToPoint(path, nil, 10, 27)
// Blah blah more curves....
CGPathAddCurveToPoint(path, nil, 13.16, 2.00, 2.00, 13.16, 2, 27)

return path
}()

static var transform = CGAffineTransformMakeScale(0.5, 0.5)
let shortStroke: CGPath! = CGPathCreateCopyByTransformingPath(MenuButton.shortStrokeOrig, &transform)
let outline: CGPath = CGPathCreateCopyByTransformingPath(outlineOrig, &transform)
}

关于ios - 缩放 CGPath & Class.Type 没有名为 nameHere 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29768761/

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