iOS WebView與TableView實現(xiàn)新聞詳情展示

最近有個需求困擾了好久殉农,終于實現(xiàn)了,記錄一下
后臺返回數(shù)據(jù)一個是conten內(nèi)容局荚,是html格式的超凳,后面還有一條條的新聞數(shù)據(jù)要展示愈污。這時候html格式是不知道高度的,必須動態(tài)的計算高度轮傍。
于是我用webView+tableView第一條cell上顯示webView暂雹,動態(tài)計算webView的高度。
看下代碼
首先先創(chuàng)建一個tableView和一個webView创夜,代碼如下

- (UITableView *)tableView{
    if (_tableView==nil) {
        _tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
        _tableView.delegate = self;
        _tableView.dataSource = self;
    }
    return _tableView;
}```

1.```
- (UIWebView *)webView{
    if (_webView == nil) {
        _webView = [[UIWebView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 1)];
        _webView.delegate = self;
        _webView.scrollView.scrollEnabled=NO;
    }
    return _webView;
}

再來創(chuàng)建一下假數(shù)據(jù)以供測試效果之用,創(chuàng)建好之后進行解析便利添加到datas數(shù)組里面

NSString *html = @"<p>改善農(nóng)村人居環(huán)境杭跪,建設(shè)美麗宜居鄉(xiāng)村,是實施鄉(xiāng)村振興戰(zhàn)略的一項重要任務(wù)驰吓,事關(guān)全面建成小康社會涧尿,事關(guān)廣大農(nóng)民根本福祉,事關(guān)農(nóng)村社會文明和諧檬贰。近年來姑廉,各地區(qū)各部門認真貫徹黨中央、國務(wù)院決策部署偎蘸,把改善農(nóng)村人居環(huán)境作為社會主義新農(nóng)村建設(shè)的重要內(nèi)容庄蹋,大力推進農(nóng)村基礎(chǔ)設(shè)施建設(shè)和城鄉(xiāng)基本公共服務(wù)均等化,農(nóng)村人居環(huán)境建設(shè)取得顯著成效迷雪。同時,我國農(nóng)村人居環(huán)境狀況很不平衡虫蝶,臟亂差問題在一些地區(qū)還比較突出章咧,與全面建成小康社會要求和農(nóng)民群眾期盼還有較大差距,仍然是經(jīng)濟社會發(fā)展的突出短板能真。為加快推進農(nóng)村人居環(huán)境整治赁严,進一步提升農(nóng)村人居環(huán)境水平,制定本方案</p>";
    NSDictionary *json = @{@"content":html,@"datas":@[@{@"name":@"河北省"},@{@"name":@"河南省"},@{@"name":@"湖南省"},@{@"name":@"湖北省"},@{@"name":@"江蘇省"},@{@"name":@"東北省"},@{@"name":@"山西省"}]};
    NSArray *datas = [json objectForKey:@"datas"];
    for (NSDictionary *dic in datas) {
        [self.datas addObject:dic];
    }
顯示在webView上顯示出來這時候回會進入webView代理方法里面
[_webView loadHTMLString:html baseURL:nil];

進入webView代理方法之后的處理

- (void)webViewDidFinishLoad:(UIWebView *)webView{
   //獲取webView的內(nèi)容高度
 CGFloat htmlHeight = [[webView stringByEvaluatingJavaScriptFromString:@"document.body.scrollHeight"] floatValue];
 //重新給webView定義高度
    self.webView.frame = CGRectMake(self.webView.frame.origin.x,self.webView.frame.origin.y, self.webView.frame.size.width, htmlHeight);
 //這時候刷新tableView粉铐,把tableView放在View展示出來
    [self.tableView reloadData];
    [self.view addSubview:_tableView];
}

tableView代理中的代碼如下

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{
    return  self.datas.count+1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.row == 0) {
        static NSString *iden = @"cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:iden];
        if (!cell) {
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:iden];
        }
        [cell addSubview:_webView];
        return cell;
    }else{
        static NSString *iden = @"cell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:iden];
        if (!cell) {
            cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:iden];
        }
        cell.textLabel.text = [self.datas[indexPath.row-1] objectForKey:@"name"];
        return cell;
    }
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{
    if (indexPath.row==0) {
        return _webView.frame.size.height;
    }else{
        return 100;
    }
}

讓我們看下效果是什么樣的

64DB447E-7165-4D54-BC48-F8DF3B659D08.png

!!!!這個效果webView右邊有空出的白條疼约,正常的事居中才對呀,那我們要對數(shù)據(jù)進行處理蝙泼,該如何處理呢程剥,看下代碼吧


0B5C6350-20C6-483C-830F-B9B36542EC0A.png

需要在這個地方加入如下代碼

NSMutableString *content = [NSMutableString string];
    [content appendString:html];
    [content appendFormat:@"<link rel=\"stylesheet\" href=\"%@\">",[[NSBundle mainBundle] URLForResource:@"Style.css" withExtension:nil]];

那么這里Style.css是哪來的,是我們自己創(chuàng)建的


252BA3DD-7BAF-4FF8-A9FD-86533367592F.png

里面的代碼內(nèi)容是什么呢


CBE1CFD9-EA05-41E7-A414-BEEFED18AA87.png
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s,
samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li,
fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video { margin: 0; padding: 0; border: 0; font-size: 100%; font: inherit; vertical-align: baseline; }
article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {   display: block; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
table { border-collapse: collapse; border-spacing: 0; }
body {
    -webkit-text-size-adjust: 100%;
    font-size: 15px;
    letter-spacing: 0.6px;
    color: #444;
    overflow-y: scroll;
    overflow-x: hidden;
    background:white;
    margin-top:10;
}
p {
    font-size: 16px;
    line-height: 1.3em;
    padding: 0px 10px;
    margin-bottom: 1.0em;
    word-wrap: break-word;
    word-break: break-all;
    color: black;
    text-indent: 2em;
    text-align: justify;
}

把代碼拷貝進去汤踏,我們看小效果如何织鲸,果然居中了
5F5BE006-6EA9-4106-AFC9-055503BB92FA.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市溪胶,隨后出現(xiàn)的幾起案子搂擦,更是在濱河造成了極大的恐慌,老刑警劉巖哗脖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件瀑踢,死亡現(xiàn)場離奇詭異扳还,居然都是意外死亡,警方通過查閱死者的電腦和手機橱夭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門氨距,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人徘钥,你說我怎么就攤上這事衔蹲。” “怎么了呈础?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵舆驶,是天一觀的道長。 經(jīng)常有香客問我而钞,道長沙廉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任臼节,我火速辦了婚禮撬陵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘网缝。我一直安慰自己巨税,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布粉臊。 她就那樣靜靜地躺著草添,像睡著了一般。 火紅的嫁衣襯著肌膚如雪扼仲。 梳的紋絲不亂的頭發(fā)上远寸,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音屠凶,去河邊找鬼驰后。 笑死,一個胖子當(dāng)著我的面吹牛矗愧,可吹牛的內(nèi)容都是我干的灶芝。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼贱枣,長吁一口氣:“原來是場噩夢啊……” “哼监署!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起纽哥,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤钠乏,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后春塌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體晓避,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡簇捍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了俏拱。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片暑塑。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖锅必,靈堂內(nèi)的尸體忽然破棺而出事格,到底是詐尸還是另有隱情,我是刑警寧澤搞隐,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布驹愚,位于F島的核電站,受9級特大地震影響劣纲,放射性物質(zhì)發(fā)生泄漏逢捺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一癞季、第九天 我趴在偏房一處隱蔽的房頂上張望劫瞳。 院中可真熱鬧,春花似錦绷柒、人聲如沸志于。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恨憎。三九已至,卻和暖如春郊楣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背瓤荔。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工净蚤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人输硝。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓今瀑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親点把。 傳聞我的和親對象是個殘疾皇子橘荠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,592評論 2 353