首页 > 代码库 > IOS开发之使用UIWebView实现图文混排
IOS开发之使用UIWebView实现图文混排
一开始做第一个新闻资讯项目的时候,不知道可以使用UIWebView实现图文并茂的效果,于是就用了最笨的方法,使用TableView解决的新闻浏览。当有点项目经验后知道可以使用UIWebView或者CoreText实现,一直也没有尝试。当上次面试被问到怎么使用WEbView进行新闻资讯展示时,当时就蒙圈了。回来以后,查阅资料发现原来如此简单; 原文转自http://blog.csdn.net/wildcatlele/article/details/38583731 转载请注明。
1. 好了废话少说先介绍一下,这个Demo的主要功能,可以进行新闻内容展示(图文混排),链接可以点击调到原新闻页面;
2.下面看一下效果:
步骤:
0.创建两个视图控制体
创建一个新项目,然后创建两个控制器LvesViewController和LvesOriginalController
分别添加一个UIWebView到self.view上。
1.去除webView滚动时,上下的白边。
- (void)clearWebViewBackground:(UIWebView *)webView { UIWebView *web = webView; for (id v in web.subviews) { if ([v isKindOfClass:[UIScrollView class]]) { [v setBounces:NO]; } } }
2.设置代理
//2. 设置代理 self.myWebView.delegate=self;
3.添加加载webview的视图
#pragma mark 加载WebView -(void) loadMyWebView{ NSString *title=@"韩寒《后会无期》奇葩的吸金3秘籍"; NSString *linkStr=[NSString stringWithFormat:@"<a href=http://www.mamicode.com/'%@'>我的博客 原文",@"http://blog.csdn.net/wildcatlele",@"http://jincuodao.baijia.baidu.com/article/26059"];>4.实现代理方法,(处理连接点击事件)
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ NSString *urlStr=request.URL.absoluteString; NSLog(@"url: %@",urlStr); //为空,第一次加载本页面 if ([urlStr isEqualToString:@"about:blank"]) { return YES; } //设置点击后的视图控制器 LvesOriginalController *originalC=[[LvesOriginalController alloc] init]; originalC.originUrl=urlStr; //设置请求连接 //跳转到点击后的控制器并加载webview [self.navigationController pushViewController:originalC animated:YES]; return NO; } //设置底部滚动不弹回 - (void)webViewDidFinishLoad:(UIWebView *)webView{ NSInteger height = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.offsetHeight;"] intValue]; NSString* javascript = [NSString stringWithFormat:@"window.scrollBy(0, %d);", height]; [webView stringByEvaluatingJavaScriptFromString:javascript]; }5.实现OrigainalViewController
// // LvesOriginalController.m // WebViewDemo // // Created by Lves Li on 14-8-15. // Copyright (c) 2014年 Lves. All rights reserved. // #import "LvesOriginalController.h" @interface LvesOriginalController () { UIWebView *_webView; } @end @implementation LvesOriginalController - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; } - (void)viewDidLoad { [super viewDidLoad]; //设置title self.title=@"原文"; _webView=[[UIWebView alloc] init]; _webView.frame=[[UIScreen mainScreen] bounds]; [self.view addSubview:_webView]; [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.originUrl]]]; } @end下载连接
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。