【发布时间】:2014-08-03 05:03:20
【问题描述】:
所以我使用了一个包含各种新闻文章的 UIPageviewController。文章在不同长度的 UIWebview 上呈现,每个 UIWebview 都包含在一个 UIScrollview 中。加载第一篇文章后,一切正常,用户可以上下滚动页面并阅读整篇文章。但是,当用户向左或向右滑动以查看下一篇文章时,该页面上的 UIScrollview 会被调整为仅是屏幕的高度,因此只会滚动到足以反弹回来。我可以说 UIWebview 比显示的要长,因为我已经打印了它的高度,并且在滚动时,您可以看到文章还在继续。此外,当您滑回最初的文章视图时,此 UIScrollview 也会调整为仅屏幕大小。
UIWebView 将其内容加载到 ArticleViewController 的 init 方法中,然后在 webViewDidLoad 方法中调整大小,如下所示:
CGRect frame = aWebView.frame;
frame.size.height = 1;
aWebView.frame = frame;
CGSize fittingSize = [aWebView sizeThatFits:CGSizeZero];
frame.size = fittingSize;
aWebView.frame = frame;
这似乎可行,尽管告诉我你是否认为我应该改变它。
要访问每篇文章,您可以从呈现每篇文章的 UITableview 中单击它。为此,在 DidSelectRowAtIndexPath 方法中,我设置了 UIPageViewController,如下所示:
UIPageViewController *articlesPageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
articlesPageViewController.dataSource = self;
articlesPageViewController.delegate = self;
非易失性!解决方案是关闭 UIScrollview 的自动布局!谢谢大家!
【问题讨论】:
-
发布您的代码。每次您导航到 UIPageViewController 中的不同页面时,您的 UIWebView / UIScrollView 似乎都会重置。
标签: ios objective-c uiwebview uiscrollview uipageviewcontroller