gpt4 book ai didi

ios - 在 UIPageViewController 中禁用滑动

转载 作者:可可西里 更新时间:2023-11-01 01:05:58 25 4
gpt4 key购买 nike

我有一个 UIViewControllerUIPageViewController 变量。

我正在尝试为屏幕上的某些位置禁用 UIPageViewController 的滑动。为此,我将 UIViewController 设置为 UIGestureRecognizerDelegate,并将 UIPageViewController 委托(delegate)中的手势识别器设置为自身(UIViewController)。我似乎无法找到手势识别器的位置或为 UIPageViewController 加载。

我已经尝试了这三个地方,但在 viewDidLoad 方法中都变成了空:

println("gesture\(self.pageViewController!.gestureRecognizers)")
println("gesture\(self.view.gestureRecognizers)")
println("gesture\(self.pageViewController!.view.gestureRecognizers)")

更新*********************:

所以我发现一些 UIGestureRecognizers 隐藏在 navigationController 中,但是将它们添加为委托(delegate)并运行下面的代码没有任何作用。是不是因为我有错误的 UIGestureRecognizers。那里还有一个 UIPanGestureRecognizer。为什么我的页面 Controller 或页面 Controller 的 View 中没有任何识别器?

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
println("Should recieve touch")
return false
}

我收到“应该接收触摸”以打印到日志,但我返回 false 并且没有禁用滑动。我做错了什么?

最佳答案

过去我曾尝试用 UIScrollView 做一些类似的事情。 UIScrollView 有一个名为 panGesture 的成员。但是你可以像这样在 pageViewControllerGesture 上循环(在标准的基于页面的应用程序上测试过):

 override func viewDidLoad() {
super.viewDidLoad()

// other set up

// loop over your pageViewController gestures
for gesture in self.pageViewController!.gestureRecognizers
{
// get the good one, i discover there are 2
if(gesture is UIPanGestureRecognizer)
{
// replace delegate by yours (Do not forget to implement the gesture protocol)
(gesture as! UIPanGestureRecognizer).delegate = self
}
}

}

func gestureRecognizerShouldBegin(gestureRecognizer: UIGestureRecognizer) -> Bool
{
// add custom logic
var ShouldISwipe = rand()%2 == 0
println("Should I Swipe : \(ShouldISwipe)")
return ShouldISwipe
}

我发现该链接也有帮助(应转换为 swift): http://www.lukaszielinski.de/blog/posts/2014/03/26/restrict-panning-of-uipageviewcontroller-to-certain-area/

希望对您有所帮助。

关于ios - 在 UIPageViewController 中禁用滑动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30203783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com