IOS - 如何從XIB創(chuàng)建高度自適應(yīng)的TableviewHeader

本文旨在解決以下問題

1.需要從XIB創(chuàng)建TableViewHeader
2.需要Tableview高度自適應(yīng)

首先要繪制好XIB視圖,將xib元素中,高度不固定的視圖高度約束去掉,例子:


示例

上圖中的WebView是高度變化元素,將其設(shè)置好和父視圖的上下左右的約束,去掉高度約束,去掉父視圖的高度約束。(UILabel等除非是高度自適應(yīng),全部應(yīng)當設(shè)置為固定高度)。

然后,要在VC中處理該視圖,因為TableView的特殊性,在設(shè)置完TableViewheader之后,高度便固定,即便更新了約束,一方面會報錯,說明各元素高度之間沖突,第二方面,會出現(xiàn)超長和Cell元素混合在一起,所以我另辟蹊徑,首先將HeaderView 初始化添加到self.view,設(shè)置好上下左右和高度的約束。然后在HeaderView中更新Webview的高度并回調(diào)給VC,高度刷新成功后,再將HeaderView移除self.view,并設(shè)置到tableview,此時高度已經(jīng)處理完畢。


image.png
圖片

然后切記要在WebView所在的控制器監(jiān)聽代理,在webViewDidFinishLoad、webViewDidStartLoad、didFailLoadWithError方法中回調(diào)該block

image.png

另外要說一點的就是,我這種做法是不完美的,在加載完成webview之前,頁面都不可操作滑動,可優(yōu)化空間很大,歡迎大家溝通交流。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時...
    歐辰_OSR閱讀 30,192評論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,621評論 1 32
  • 偶然和兒子一起翻看去年的照片和視頻,那時候兒子還處在牙牙學(xué)語的階段,臉還是圓嘟嘟的。兒子看著照片里的我抱著一個小寶...
    芥末0331閱讀 234評論 1 1
  • 新浪書簡閱讀 58評論 0 0
  • 為主耶穌存款-下午帶著以勒弟弟去接大衛(wèi)放學(xué),大衛(wèi)從學(xué)校出來興高采烈地拿著老師送的做手工的一包小零件,在車上時就迫不...
    Carrie宣婷閱讀 188評論 1 1

友情鏈接更多精彩內(nèi)容