iOS界面开发:手势、导航栏及相关组件的深入解析
1. 手势旋转限制处理
当旋转手势超出最小或最大旋转角度时,需要对手势进行限制。解决方案是停止跟踪手势,由于 endTracking 不会被调用,因此还需要触发 Value Changed 控制事件。为了让开发者可以选择在 continueTracking 重复调用时持续报告 Value Changed 控制事件,我们添加一个公共的 isContinuous 布尔属性并遵循它。以下是实现代码:
override func continueTracking(_ t: UITouch, with _: UIEvent?) -> Bool {
let ang = pToA(t) - self.initialAngle
let absoluteAngle = self.angle + ang
switch absoluteAngle {
case -CGFloat.greatestFiniteMagnitude...0:
self.angle = 0
self.sendActions(for: .valueChanged)
return false
case 5...CGFloat.greatestFiniteMagnitude:
self.angle = 5
self.sendActions(for: .valueChange
超级会员免费看
订阅专栏 解锁全文
737

被折叠的 条评论
为什么被折叠?



