iOS新聞詳情界面實現(xiàn)

1、首先了解到后臺返回的數(shù)據(jù)格式(此處為網(wǎng)易新聞返回的數(shù)據(jù)格式)

/*
{
 "CN8JAMBI0001875N":{
 "body":"<!--IMG#0--><p>  本文的........</p>",//文章的核心內(nèi)容
 "users":Array[0],
 "img":[
 {
 "ref":"<!--IMG#0-->",   // 圖片的占位符
 "pixel":"750*300",      //圖片的寬高
 "alt":"",               //圖片的文字說明
 "src":"http://cms-bucket.nosdn.127.net/0710e75f54d146fc87fb801d4cdfc39d20170619000031.jpeg"
 },     //圖片的路徑
 ],
 "title":"中央查處這件事,讓一些地方“形同十級地震”",//文章的標題
 "ptime":"2016-09-20 21:56:57"http://文章的發(fā)布時間
 }
 }
*/

2亿虽、獲取數(shù)據(jù)并解析數(shù)據(jù)

self.dataDictionary = [NSDictionary dictionaryWithDictionary:[dict objectForKey:@"CN8JAMBI0001875N"]];//得到詳情數(shù)據(jù)字典

3、使用UIWebView來接收頁面返回的數(shù)據(jù)

@property (nonatomic, strong)UIWebView *webView;
- (UIWebView *)webView
{
    if (!_webView) {
        _webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 64, ScreenWidth, 100)];
        _webView.delegate = self;
    }
    return _webView;
}

4苞也、核心內(nèi)容:加載網(wǎng)頁的內(nèi)容洛勉,里面有設(shè)計拼接網(wǎng)頁元素,以及h5的相關(guān)知識

- (NSString *)getBodyString
{
    NSMutableString *body = [NSMutableString string];
    if (self.dataDictionary.count != 0) {
        [body appendFormat:@"<div class=\"title\">%@</div>",[self.dataDictionary objectForKey:@"title"]];
        [body appendFormat:@"<div class=\"time\">%@</div>",[self.dataDictionary objectForKey:@"ptime"]];        
        [body appendString:[self.dataDictionary objectForKey:@"body"]];
        NSMutableArray *imageArr = [self.dataDictionary objectForKey:@"img"];
        for (int i = 0; i < imageArr.count; i ++) {
            NSDictionary *dict = [imageArr objectAtIndex:i];
            NSMutableString *imgHtml = [NSMutableString string];
            // 設(shè)置img的div
            [imgHtml appendString:@"<div class=\"img-parent\">"];
            NSArray *pixel = [[dict objectForKey:@"pixel"] componentsSeparatedByString:@"*"];
            CGFloat width = [[pixel firstObject]floatValue];
            CGFloat height = [[pixel lastObject]floatValue];
            // 判斷是否超過最大寬度
            CGFloat maxWidth = [UIScreen mainScreen].bounds.size.width * 0.96;
            if (width > maxWidth) {
                height = maxWidth / width * height;
                width = maxWidth;
            }
            NSString *onload = @"this.onclick = function() {"
            "  window.location.href = 'sx://github.com/dsxNiubility?src=' +this.src+'&top=' + this.getBoundingClientRect().top + '&whscale=' + this.clientWidth/this.clientHeight ;"
            "};";
            [imgHtml appendFormat:@"<img onload=\"%@\" width=\"%f\" height=\"%f\" src=\"%@\">",onload,width,height,[dict objectForKey:@"src"]];
            [imgHtml appendString:@"</div>"];
            [body replaceOccurrencesOfString:[dict objectForKey:@"ref"] withString:imgHtml options:NSCaseInsensitiveSearch range:NSMakeRange(0, body.length)];
        }
    }
    return body;
}
- (NSString *)getHtmlString
{
    NSMutableString *html = [NSMutableString string];
    [html appendString:@"<html>"];
    [html appendString:@"<head>"];
    [html appendFormat:@"<link rel=\"stylesheet\" href=\"%@\">",[[NSBundle mainBundle] URLForResource:@"InfoDetails.css" withExtension:nil]];//創(chuàng)建CSS文件
    [html appendString:@"</head>"];
    [html appendString:@"<body style=\"background:#f6f6f6\">"];
    [html appendString:[self getBodyString]];
    [html appendString:@"</body>"];
    [html appendString:@"</html>"];
    return html;
}

5如迟、UIWebView代理方法實現(xiàn)

#pragma mark -- UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    self.webView.height = self.webView.scrollView.contentSize.height;
    [self.dataTableView reloadData]; //同時刷新頁面
}

6坯认、將webView 直接加載到tableViewheader上面,同時設(shè)置header高度為webview高度

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    return self.webView.height;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    return self.webView;
}

7、如果需要加載評論信息的話 直接可以自定義cell完成實現(xiàn)氓涣,
以上就是使用webView實現(xiàn)新聞詳情頁面實現(xiàn)(圖片的點擊和視頻的播放功能牛哺,后面會實現(xiàn))

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市劳吠,隨后出現(xiàn)的幾起案子引润,更是在濱河造成了極大的恐慌,老刑警劉巖痒玩,帶你破解...
    沈念sama閱讀 212,816評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淳附,死亡現(xiàn)場離奇詭異议慰,居然都是意外死亡,警方通過查閱死者的電腦和手機奴曙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評論 3 385
  • 文/潘曉璐 我一進店門别凹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人洽糟,你說我怎么就攤上這事炉菲。” “怎么了坤溃?”我有些...
    開封第一講書人閱讀 158,300評論 0 348
  • 文/不壞的土叔 我叫張陵拍霜,是天一觀的道長。 經(jīng)常有香客問我薪介,道長祠饺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評論 1 285
  • 正文 為了忘掉前任汁政,我火速辦了婚禮道偷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘记劈。我一直安慰自己勺鸦,他們只是感情好,可當我...
    茶點故事閱讀 65,890評論 6 385
  • 文/花漫 我一把揭開白布抠蚣。 她就那樣靜靜地躺著祝旷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嘶窄。 梳的紋絲不亂的頭發(fā)上怀跛,一...
    開封第一講書人閱讀 50,084評論 1 291
  • 那天,我揣著相機與錄音柄冲,去河邊找鬼吻谋。 笑死,一個胖子當著我的面吹牛现横,可吹牛的內(nèi)容都是我干的漓拾。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼戒祠,長吁一口氣:“原來是場噩夢啊……” “哼骇两!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起姜盈,我...
    開封第一講書人閱讀 37,912評論 0 268
  • 序言:老撾萬榮一對情侶失蹤低千,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后馏颂,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體示血,經(jīng)...
    沈念sama閱讀 44,355評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡棋傍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,666評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了难审。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘫拣。...
    茶點故事閱讀 38,809評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖告喊,靈堂內(nèi)的尸體忽然破棺而出麸拄,到底是詐尸還是另有隱情,我是刑警寧澤葱绒,帶...
    沈念sama閱讀 34,504評論 4 334
  • 正文 年R本政府宣布感帅,位于F島的核電站斗锭,受9級特大地震影響地淀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜岖是,卻給世界環(huán)境...
    茶點故事閱讀 40,150評論 3 317
  • 文/蒙蒙 一帮毁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豺撑,春花似錦烈疚、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陆错,卻和暖如春灯抛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背音瓷。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評論 1 267
  • 我被黑心中介騙來泰國打工对嚼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绳慎。 一個月前我還...
    沈念sama閱讀 46,628評論 2 362
  • 正文 我出身青樓纵竖,卻偏偏與公主長得像,于是被迫代替她去往敵國和親杏愤。 傳聞我的和親對象是個殘疾皇子靡砌,可洞房花燭夜當晚...
    茶點故事閱讀 43,724評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫、插件珊楼、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,066評論 4 62
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,870評論 25 707
  • 語法糖(Syntactic sugar)通殃,也譯為糖衣語法,是由英國計算機科學家彼得·約翰·蘭達(Peter J.L...
    小笨憨閱讀 2,712評論 0 1
  • 非常無奈地今天下午去修電腦亥曹,結(jié)果被告知電腦已經(jīng)不能再用邓了,只有再換新電腦了恨诱,真的很抱歉各位讀者,《長恨歌》我肯定會努...
    張悠揚閱讀 286評論 0 4
  • 2016-12-19 (轉(zhuǎn)自我的公眾號meizhouyidiandian) 作為本號第一篇分享骗炉,最后選擇了近兩年讓...
    學習螞蟻的木頭閱讀 2,389評論 5 54