使用 UIPageViewControllers 滚动整个视图,包括 UIButtons
Using UIPageViewControllers scroll over entire view, including UIButtons
我有一个带有 PageViewController 和 4 个 UIButton 作为子视图的 UIView。 PageViewController 和按钮子视图彼此独立。 (PageViewController 滚动 4 个页面,而 UIButtons 保持不变)
我面临的问题是按钮占用了相当多的空间 space,我想在 UIView 的任何地方使用这个滚动手势,包括带有按钮的区域。
如果用户点击按钮,相应的操作就会发生,但我希望我可以在按钮上开始一个 scroll/swipe 手势并让 PageViewControllers 滚动功能起作用。
我有 tried/searched 几种方法,包括使用 UIScrollView 而不是 PageViewController。任何帮助将不胜感激。提前致谢。 :)
只需添加您自己的手势识别器并观察在 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
}
我有一个带有 PageViewController 和 4 个 UIButton 作为子视图的 UIView。 PageViewController 和按钮子视图彼此独立。 (PageViewController 滚动 4 个页面,而 UIButtons 保持不变)
我面临的问题是按钮占用了相当多的空间 space,我想在 UIView 的任何地方使用这个滚动手势,包括带有按钮的区域。
如果用户点击按钮,相应的操作就会发生,但我希望我可以在按钮上开始一个 scroll/swipe 手势并让 PageViewControllers 滚动功能起作用。
我有 tried/searched 几种方法,包括使用 UIScrollView 而不是 PageViewController。任何帮助将不胜感激。提前致谢。 :)
只需添加您自己的手势识别器并观察在 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
}