【发布时间】:2023-04-05 21:14:01
【问题描述】:
您好,我正在尝试在自定义 UIControl 的拇指中心添加一个标签。我需要找到拇指的中心。
我有一个函数,我想将拇指中心返回为 CGPoint。
该函数返回的坐标非常奇怪,如下所示:
thumb center coordinates: (5.534284385e-315, 5.356796015e-315)
为什么我会得到这些值? UIControl 有没有办法像 UISlider 一样返回 thumbRect?谢谢!!
open func getThumbCenterRect() -> CGPoint {
return thumbCenter
}
fileprivate var thumbCenter: CGPoint {
var thumbCenter = viewCenter
let angle = rtlAwareAngleRadians(thumbAngle)
thumbCenter.x += CGFloat(cos(angle)) * controlRadius
thumbCenter.y += CGFloat(sin(angle)) * controlRadius
return thumbCenter
}
@IBAction func onSlideChange(_ sender: MTCircularSlider) {
let thumbCenter = knobWithLabelView.getThumbCenterRect()
print("thumb centre coordinates: \(thumbCenter)")
}
输出:
thumb coordinates: (5.534284385e-315, 5.356796015e-315)
【问题讨论】:
-
你能解释一下你所说的“拇指”是什么意思吗? “viewCenter”在哪里定义?
-
使用调试器单步调试代码。查看每一行的值。找出你在哪里得到了一个意想不到的价值。由于您没有告诉我们涉及的任何变量,因此很难提供帮助。
-
您可能还希望避免将局部变量命名为与其所在的计算属性的名称相同。这会造成混淆。
标签: ios swift uislider cgpoint uicontrol