我正在尝试滚动到正在webView中查看的PDF的最后查看位置。卸载PDF时,它将保存webView的scrollView的y偏移量。然后当PDF重新打开时,我想跳到他们离开的地方。
当动画设置为YES时,下面的代码工作正常,但是当它设置为NO时,没有任何反应
float scrollPos = [[settingsData objectForKey:kSettingsScrollPosition]floatValue];
NSLog(@"scrolling to %f",scrollPos);
[webView.scrollView setContentOffset:CGPointMake(0, scrollPos) animated:NO];
NSLog(@"ContentOffset:%@",NSStringFromCGPoint(webView.scrollView.contentOffset));
此输出:
滚动到5432.000000
CO:{0,5432}
然而PDF仍然显示首页
我在这里查看了类似问题的答案,但他们没有解决这个问题。
感谢您的帮助:)
答案 0 :(得分:1)
在contentOffset
组件完成PDF渲染之前,您无法触摸UIWebView
。它适用于setContentOffset: animated:YES
,因为动画会强制渲染。
如果在渲染开始后将contentOffset
设置为至少0.3秒(来自我的测试),则完全没有问题。
例如,如果您在viewDidLoad
的{{1}}中加载PDF,则可以在UIViewController
中使用performSelector:withObject:afterDelay:
来延迟viewDidAppear:
设置。
要在设置contentOffset
之前隐藏PDF,可以将其alpha设置为0.01(除非渲染无法启动,否则不要将其设置为0)并在设置{{1}后将其设置为1 }。
contentOffset