iOS中获取cell中webview的内容尺寸
2016-09-22 16:14
405 查看
最近项目中遇到在cell中获取webView的内容的尺寸的需求 实现的思路其实很简单 就是通过执行js 获取尺寸即可 为了后面用着方便我直接封装了一个HTML的cell 起名就叫
STHTMLBaseCell 下面是实现代码:
以上是.h文件的实现 很简单 就是声明了 STHTMLBaseCell 然后创建了代理 这个代理方法 就是返回给外部webView的内容的高度的
大致就这么简单 就能够在cell中获取webview 的内容尺寸了。
STHTMLBaseCell 下面是实现代码:
#import "STBaseTableViewCell.h"@class STHTMLBaseCell; @protocol STHtmlBaseDelegate <NSObject> - (void)webViewDidLoad:(STHTMLBaseCell *)cell height:(CGFloat)height; @end @interface STHTMLBaseCell : STBaseTableViewCell @property (weak, nonatomic) id<STHtmlBaseDelegate>delegate; @end
以上是.h文件的实现 很简单 就是声明了 STHTMLBaseCell 然后创建了代理 这个代理方法 就是返回给外部webView的内容的高度的
#import "STHTMLBaseCell.h" @interface STHTMLBaseCell()<UIWebViewDelegate> @property (weak, nonatomic) IBOutlet UIWebView *webView;@end @implementation STHTMLBaseCell - (void)awakeFromNib { [super awakeFromNib]; // Initialization code self.webView.scrollView.scrollEnabled = NO; self.webView.scrollView.pagingEnabled = NO; self.webView.delegate = self; self.webView.backgroundColor = [UIColor whiteColor]; } - (void)configCellWithHtml:(NSString *)html //外界传入的html字符串 { [self.webView loadHTMLString:html baseURL:nil];//加载html } #pragma mrak - UIWebViewDelegate - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitUserSelect='auto';"];//让用户可以选中webview里面内容 [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.style.webkitTouchCallout='auto';"];//可以响应用户的手势 NSURL *url = [request URL]; if (![url host]) { return YES; } return NO; } - (void)webViewDidFinishLoad:(UIWebView *)webView { CGFloat height = [[webView stringByEvaluatingJavaScriptFromString: @"document.body.scrollHeight"] floatValue]; //获取webview内容的高度 self.webView.height = height; if ([self.delegate respondsToSelector:@selector(webViewDidLoad:height:)]) { [self.delegate webViewDidLoad:self height:height];//调用代理的方法 } } @end
大致就这么简单 就能够在cell中获取webview 的内容尺寸了。
相关文章推荐
- php微信公众号模板消息主动推送
- 关于自定义Toast
- 微信开通检测软件使用心得与技巧
- Android开发--CardView使用
- ios基础---内存管理
- Java(Android)线程池
- Android杂谈(15)关于ViewPager里的Fragment的生命周期+懒加载
- iOS多线程几种形式
- Unity插件 - MeshEditor(七)变形动画骨骼及蒙皮
- Unity插件 - MeshEditor(七)变形动画骨骼及蒙皮
- 在android studio开发中,关于绘制GifView异常,硬件加速问题的解决办法
- 微信开发,通过token获取signature
- Android控件测量生命周期
- Android:视图绘制(三) ------Path介绍
- Swift:一个简单的货币转换器App在iOS10中的分析和完善
- iOS中书写代码规范35条小建议
- Swift:一个简单的货币转换器App在iOS10中的分析和完善
- Swift:一个简单的货币转换器App在iOS10中的分析和完善
- Android 中性能优化之lint使用总结
- Android下各个按键对应的key code