嗨,我正在尝试在 iOS 中创建一个旋转轮,我发现了这个很棒的教程 How to Create a Rotation Wheel Control ,它非常好且完整,但在这种情况下,选定的对象在左侧,需要在正确的。
所以我想知道是否有人知道我需要改变什么才能选择正确的一面
那么在示例中我们可以在 endtrackingWithTouch 事件中看到以下代码
// 1 - Get current container rotation in radians
CGFloat radians = atan2f(container.transform.b,container.transform.a);
NSLog(@"Radians %f", radians);
// 2 - Initialize new value
CGFloat newVal = 0.0;
// 3 - Iterate through all the sectors
for (SMSector *s in sectors) {
// 4 - Check for anomaly (occurs with even number of sectors)
if (s.minValue > 0 && s.maxValue < 0) {
if (s.maxValue > radians || s.minValue < radians) {
// 5 - Find the quadrant (positive or negative)
if (radians > 0) {
newVal = radians - M_PI;
} else {
newVal = M_PI + radians;
}
currentSector = s.sector;
}
}
// 6 - All non-anomalous cases
else if (radians > s.minValue && radians < s.maxValue) {
newVal = radians - s.midValue;
currentSector = s.sector;
}
}
对弧度进行数学计算并比较扇区中的最小值和最大值,如果我更改 (CGFloat 弧度 = atan2f(container.transform.b,container.transform.a);) 对于 CGFloat 弧度 = atan2f (container.transform.d,container.transform.c); 我能够从底部获得该部门