gpt4 book ai didi

ios - 观察 UIPageViewController 的过渡状态

转载 作者:可可西里 更新时间:2023-11-01 04:56:54 26 4
gpt4 key购买 nike

我想根据 View 在“屏幕上”的显示程度来调整 View 的视觉状态。这些 View 由 UIPageViewController 管理,使用常用的 .Scroll 过渡样式。

我想要的行为是让标题在屏幕上为 100% 时不透明度为 100%,在屏幕上为 0% 时为 0% 不透明度,根据平移导航手势/动画在两者之间转换.

我希望我可以插入 x 坐标或完成动画的百分比,但我在任何地方都看不到属性。我知道页面 View Controller 在幕后使用 ScrollView ,但我有点担心进入私有(private) API,而且我没有看到访问它的公共(public)方法。

有什么方法可以连接到现有的交互式过渡,以便我可以向根据完成百分比缩放的 subview Controller 添加一些额外的行为?

更新:

  • 尝试实现 UIScrollViewDelegate 的 scrollViewDidScroll。没运气。我认为页面 View Controller 会调用此委托(delegate)上的方法。
  • 尝试在 subview Controller 中使用 viewWillDisappear/viewDidAppear。这是功能性的,但动画没有响应,因为这些在用户行为开始/结束时被称为单个事件。

最佳答案

您已经更新了关于 UIScrollViewDelegate 的问题,但是对于类似的问题,我使用 UIScrollViewDelegate像这样:

for(UIView *aView in self.pageViewController.view.subviews){
if([aView isKindOfClass:[UIScrollView class]]){
UIScrollView* sv = (UIScrollView*)aView;
sv.delegate = self;
}
}

在我的例子中,UIPageViewController 位于容器 View Controller 中。这就是为什么我在类中添加了一个委托(delegate) (PagerDelegate) 以在 ScrollView 滚动时调用 ContainerViewController:

#pragma mark - UIScrollViewDelegate

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
[self.pagerDelegate viewDidScroll:scrollView];
}

在 ContainerViewController:

#pragma mark - PagerDelegate

- (void)viewDidScroll:(UIScrollView*)scrollView {
// calculate the transition percentage and do anything you need...
}

希望我理解正确,对其他人有所帮助。 (可能你已经解决了这个问题,因为 2015 年 6 月 16 日问过)

关于ios - 观察 UIPageViewController 的过渡状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30870243/

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