发现UIPageView的一个bug,它没有对ViewRect的坐标进行转换,导致点击区域在内部的判断有问题。
这个问题在UIScrollView里已经很好的处理了,为什么不直接继承呢?
手动修复了这个UIPageView触摸区域的bug,首先让UIPageView继承UIScrollView
然后修改onTouch_为下面的代码
function UIPageView:onTouch_(event)
if "began" == event.name and not self:isTouchInViewRect(event) then
printInfo("UIScrollView - touch didn't in viewRect")
return false
end
if "began" == event.name then
self:stopAllTransition()
self.bDrag_ = false
elseif "moved" == event.name then
self.bDrag_ = true
self.speed = event.x - event.prevX
self:scroll(self.speed)
elseif "ended" == event.name then
if self.bDrag_ then
self:scrollAuto()
else
self:resetPages_()
self:onClick_(event)
end
end
return true
end
```