gpt4 book ai didi

cocoa-touch - UIScrollView 在模态视图 Controller 的动画演示中滚动到不同的位置

转载 作者:行者123 更新时间:2023-12-04 12:59:00 25 4
gpt4 key购买 nike

我正在使用 UIScrollView用于分页三个不同的UIViewControllers .寻呼机初始化为从开始显示第 1 页。所以用户可以从头开始向左或向右滑动。当我从中间 View Controller 呈现模态视图 Controller 时,UIScrollView在呈现的 View Controller 的动画期间临时滚动到第一页。当我关闭模态视图 Controller 时,一切都恢复正常,UIScrollView显示中心 View Controller 。

我希望(并且想要)UIScrollView在动画期间保持它的位置。

这不是导致崩溃或其他什么的技术错误,它只是丑陋。

以前有人有过吗?知道如何解决吗?

最佳答案

我也遇到过同样的问题,经过大量调查,这似乎是 UIKit 中与 ScrollView 和自动布局有关的错误。这是“修复”...

在 viewDidDisappear: 中,将当前的 ScrollView contentOffset 保存到一个属性,并将其重置为零:

- (void)viewDidDisappear:(BOOL)animated 
{
[super viewDidDisappear:animated];

self.previousContentOffset = self.scrollView.contentOffset;

self.scrollView.contentOffset = CGPointZero;
}

然后,在 viewWillAppear: 中,将内容偏移量重置回原来的值。我必须将它分派(dispatch)到主队列以使其正常工作:
- (void)viewWillAppear:(BOOL)animated 
{
if (!CGPointEqualToPoint(self.previousContentOffset, CGPointZero))
{
dispatch_async(dispatch_get_main_queue(), ^{
self.scrollView.contentOffset = self.previousContentOffset;
});
}
}

关于cocoa-touch - UIScrollView 在模态视图 Controller 的动画演示中滚动到不同的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17484070/

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