ios - UIScrollView : scroll working but view not resizing 内的 UIWebView

标签 ios objective-c uiwebview uiscrollview

我是 iOS 编程的新手,我想在 Storyboard 中创建一个 View ,顶部是 UIImageView,下面是 uiWebView。我设置了一个包含它们的 UIScrollView,我希望滚动使图像在向下移动时消失。

我按照这个答案 ( link ) 进行了滚动,但 UIWebView 没有正确调整自身大小。我已经尝试了很多解决方案,但如果我调整了 Web View 的大小,我就无法再进行滚动,反之亦然。

特别是,我正在使用:

- (void)viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
    _textDetailNews.delegate = self; // the web view delegate
    _textDetailNews.scrollView.scrollEnabled = NO;
    [_textDetailNews loadHTMLString:description baseURL:nil]; // set text to be shown in web view
}

- (void)webViewDidFinishLoad:(UIWebView *)webview 
{
   CGFloat height = [[_textDetailNews stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight"] floatValue];

   [_scrollView setContentSize: CGSizeMake(_scrollView.frame.size.width, height + _scrollView.frame.size.height)];

   CGRect oldBounds = [[self textDetailNews] frame];
   [_textDetailNews setFrame:CGRectMake(oldBounds.origin.x, oldBounds.origin.y, oldBounds.size.width, height)];
}

其中 _scrollView 已经包含 Storyboard中的 UIImageViewUIWebView 集。

拜托,对于使滚动和 UIWebView 高度调整正常工作的任何帮助,我表示感谢。

编辑

我试图让它更清楚。 UIScrollView 与上述代码一起工作正常,但 UIWebView 不会更改其框架。如果我不调用:_srollView 上的 setContentSizeUIWebView 会更改大小,但 View 不会再滚动。

谁能告诉我问题出在哪里?

最佳答案

您必须委托(delegate)“UIScrollViewDelegate”协议(protocol)。在 .m 文件中,您必须实现以下方法:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView;
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale

例如:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return nil;
    return scrollView.subviews.firstObject;
}

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale
{

}

关于ios - UIScrollView : scroll working but view not resizing 内的 UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24995778/

相关文章:

ios - interactivePopGestureRecognizer - 弹出或返回当前 View Controller

objective-c - 如何将 NSTimeInterval 对象传递给 detachNewThreadSelector withObject 参数?

Javascript 控制台在 Swift 中登录 UIWebView

ios - 如何在 iOS 中更改部分透明图像的颜色?

iphone - iOS: locationManager:didUpdateToLocation:fromLocation: 不移动时报告速度

ios - 在应用程序委托(delegate)之外使用解析函数时出错

ios/过滤表的最佳实践 - 一个或多个 View Controller

ios - UIWebView 框架加载中断

iphone - Xcode UIWebView 本地 HTML

ios - 对不同 View 使用共享类