IOS開發之使用UIWebView實現圖文混排

來源:互聯網
上載者:User

標籤:

IOS開發之使用UIWebView實現圖文混排
時間 2014-08-15 13:45:35  CSDN部落格
原文  http://blog.csdn.net/wildcatlele/article/details/38583731
主題 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 *[email protected]"韓寒《後會無期》奇葩的吸金3秘籍";
 
  NSString *linkStr=[NSString stringWithFormat:@"<a href=‘%@‘>我的部落格</a> <a href=‘%@‘>原文</a>",@"http://blog.csdn.net/wildcatlele",@"http://jincuodao.baijia.baidu.com/article/26059"];
 
  NSString *[email protected]"韓寒《後會無期》的吸金能力很讓我驚訝!8月12日影片票房已成功衝破6億大關。而且排片量仍保持10 以上,以日收千萬的速度穩步向七億進軍。";
 
  NSString *[email protected]"要知道,《後會無期》不是主流類型片,是一個文藝片。不像《小時代》,是一個商業主流的偶像電影。";
  NSString *image1=[NSString stringWithFormat:@"<img src=‘%@‘  height=‘280‘ width=‘300‘ />",@"http://nvren.so/uploads/allimg/c140801/140DR4554L40-YB9.jpg"];
  NSString *image2=[NSString stringWithFormat:@"<img src=‘%@‘  height=‘280‘ width=‘300‘ />",@"http://f.hiphotos.baidu.com/news/w%3D638/sign=78315beeb1fb43161a1f797918a44642/2934349b033b5bb58cb61bdb35d3d539b600bcb5.jpg"];
 
  NSString *[email protected]"太奇葩了!有人說,這是中國電影市場的紅利,是粉絲電影的成功。但是,有一部投資3000萬的粉絲電影《我就是我》,有明星,製作也不錯,基本上是慘敗。";
 
  NSString *[email protected]"《後會無期》賣的不是好故事,是優越感。特別是針對80、90後的人群,你有沒有發現,看《後會無期》比看《小時代3》有明顯的優越感。故事雖然一般,但是很多人看完後,會在微博、上曬照片。所以說,對一個族群靠的不是廣度,而是深度。<br>\
  \
  很兇殘,值得大家借鑒。韓寒《後會無期》還有什麼秘密武器,歡迎《後會無期》團隊或相關方爆料,直接留言即可,有料的可以送黎萬強親筆簽名的《參與感》一書。";
 
  //初始化和html字串
  NSString *htmlURlStr=[NSString stringWithFormat:@"<body style=‘background-color:#EBEBF3‘><h2>%@</h2><p>%@</p> <p>%@ </p>%@ <br><p> %@</p> <p>%@</p>%@<p>%@</p></body>",title,linkStr,p1,image1,p2,p3,image2,p4];
 
  [self.myWebView loadHTMLString:htmlURlStr baseURL:nil];

}
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
  [email protected]"原文";
 
 
  _webView=[[UIWebView alloc] init];
  _webView.frame=[[UIScreen mainScreen] bounds];
 
  [self.view addSubview:_webView];
 
  [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.originUrl]]];
 
 
}

 

@end

IOS開發之使用UIWebView實現圖文混排

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.