【发布时间】:2014-05-31 04:18:13
【问题描述】:
我正在使用loadRequest:requestURL 将HTML 文档加载到UIWebView 中。 HTML 内容并不完全适合视图的框架。令我惊讶的是,在页面加载时(调用webViewDidFinishLoad: 时)视图的scrollView.contentOffset 与(0,0) 不同。看起来好像内容可能已经大致向下滚动,以使其垂直中心与视图的垂直中心对齐(见下面的屏幕截图)。
这怎么会发生?我如何才能实现让内容的左上角最初与视图的左上角对齐的预期行为?在 webViewDidFinishLoad:` 中将 scrollView.contentOffset 设置为 (0,0) 是一种选择,但显然会导致一些闪烁。
这发生在UIViewController 的上下文中,该UIViewController 在其根视图下方包含两个兄弟UIWebViews。两个UIWebViews 垂直堆叠,中间有一个UILabel(在屏幕截图中显示为灰色背景)。 (下方的UIWebView在截图中不可见,因为它目前全是白色的。)视图使用基于约束的布局,当前的问题与上方的UIWebView有关。
更新 进一步的研究表明,视觉缺陷不是由于滚动上部UIWebView,而是由于其frame.origin.y已从0设置为64(其中也是调用webViewDidFinishLoad 时状态栏和导航栏的组合高度。我从视图控制器的viewWillAppear: 调用loadRequest:requestWithURL: 并且在上部UIWebView 上有一个布局约束,它在顶部布局指南的顶部和底部之间施加了0 的垂直空间。
【问题讨论】:
标签: ios uiwebview uiscrollview nslayoutconstraint contentoffset