我有一个带有PageViewController的UIView和4个UIButtons作为子视图。 PageViewController和按钮子视图彼此独立。 (PageViewController滚动4页,而UIButtons保持不变)
我面临的问题是按钮占用了相当大的空间,我想在UIView的任何地方使用这个滚动手势,包括带按钮的区域。
如果用户点击按钮,则会发生相应的操作,但我想如果我可以在按钮上启动滚动/滑动手势并使PageViewControllers滚动功能起作用。
我尝试/搜索了几种方法,包括使用UIScrollView而不是PageViewController。任何帮助将不胜感激。提前致谢。 :)
答案 0 :(得分:0)
只需添加自己的手势识别器,并观察手势,其中x方向的速度更大,从左到右。
override func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool {
if (gestureRecognizer.isMemberOfClass(UIPanGestureRecognizer)){
let point:CGPoint = (gestureRecognizer as UIPanGestureRecognizer).velocityInView(self)
if (abs(point.x) > abs(point.y)){
return true
}
}
}
在此处理手势:
func handlePanGestureRecognizer(gesture: UIPanGestureRecognizer){
let translation:CGPoint = gesture.translationInView(self)
if(translation.x > 0){
//its going from left to right...
//...transition to the previous page
}else{
//...transition to the next page
}