讓UITextView乖乖聽話

今天做一個頁面,有大量的文字展示,需要用到UITextView豆励。因為文字過多癌刽,自然有一部分無法顯示崎坊,需要滑動后才能看到。不過當(dāng)我把頁面寫完后,出來的效果是這樣的。

默認(rèn)效果

默認(rèn)的效果是妇押,textview自動滑倒最底下。這肯定不符合我們的設(shè)想姓迅,我們希望的是一進來就從第一行顯示敲霍。第一個想到的方法是進入頁面后回滾會滾到首行。不過這個方法明顯多此一舉队贱,心想textview應(yīng)該有控制默認(rèn)滾動到屬性色冀,結(jié)果還真被我找到了,不過這個屬性藏的很深柱嫌。

textview.layoutManager.allowsNonContiguousLayout = false

默認(rèn)為true,正是這個屬性讓textview默認(rèn)滾到末尾屯换。

興高采烈的改完屬性编丘,重新運行与学,結(jié)果發(fā)現(xiàn)還是有問題。

設(shè)置allowsNonContiguousLayout后的效果

竟然是從第二行開始顯示嘉抓?索守?!抑片!接著我嘗試加入滾動代碼

textview.scrollRangeToVisible(NSMakeRange(0, 1))

嘗試多次后發(fā)現(xiàn)卵佛,這段代碼只有放在viewDidAppear中才能起作用(此時用戶是能夠看到滾動過程的!)敞斋,我推測在viewDidLoad和viewWillAppear中textview還沒有拿到最終的frame(我是用storyboard來構(gòu)建頁面的)截汪,使得在這期間無論修改allowsNonContiguousLayout還是scrollRangeToVisible都沒有效果,因為此時的frame確實已經(jīng)滾動到了頂端植捎。只不過等viewDidAppear之后UI布局做了最重調(diào)整衙解,而此時滾動過程已經(jīng)結(jié)束。

大概猜到原因之后焰枢,解決方法自然加入layoutIfNeeded讓UI控件提前計算出最終的frame

override func viewDidLoad() {

super.viewDidLoad()

textview.layoutIfNeeded()

textview.layoutManager.allowsNonContiguousLayout = false

textview.scrollRangeToVisible(NSMakeRange(0, 1))

}

注意蚓峦,即便是使用layoutIfNeeded提前拿到textview的frame,也還需要加入scrollRangeToVisible才能最終達到想要的效果济锄。我推測這是蘋果AutoLayout的bug暑椰。說實話AutoLayout一開始出現(xiàn)的時候各種BUG,不過完全擁抱AutoLayout之后荐绝,布局這一塊確實減少了很多工作量干茉。希望iOS能夠更加完善吧。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末很泊,一起剝皮案震驚了整個濱河市角虫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌委造,老刑警劉巖戳鹅,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異昏兆,居然都是意外死亡枫虏,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門爬虱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來隶债,“玉大人,你說我怎么就攤上這事跑筝∷蓝铮” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵曲梗,是天一觀的道長赞警。 經(jīng)常有香客問我妓忍,道長,這世上最難降的妖魔是什么愧旦? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任世剖,我火速辦了婚禮,結(jié)果婚禮上笤虫,老公的妹妹穿的比我還像新娘旁瘫。我一直安慰自己,他們只是感情好琼蚯,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布酬凳。 她就那樣靜靜地躺著,像睡著了一般凌停。 火紅的嫁衣襯著肌膚如雪粱年。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天罚拟,我揣著相機與錄音台诗,去河邊找鬼。 笑死赐俗,一個胖子當(dāng)著我的面吹牛拉队,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播阻逮,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼粱快,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了叔扼?” 一聲冷哼從身側(cè)響起事哭,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎瓜富,沒想到半個月后鳍咱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡与柑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年谤辜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片价捧。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡丑念,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出结蟋,到底是詐尸還是另有隱情脯倚,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布椎眯,位于F島的核電站挠将,受9級特大地震影響胳岂,放射性物質(zhì)發(fā)生泄漏编整。R本人自食惡果不足惜舔稀,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望掌测。 院中可真熱鬧内贮,春花似錦、人聲如沸汞斧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粘勒。三九已至竞端,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間庙睡,已是汗流浹背事富。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留乘陪,地道東北人统台。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像啡邑,于是被迫代替她去往敵國和親贱勃。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫谤逼、插件贵扰、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,124評論 4 61
  • 由于一系列的原因,近期開始面試了流部,針對面試常問中的問題做了一些總結(jié)戚绕,以及收錄了一些問題。 一贵涵、總結(jié) 1.1列肢、@pr...
    天空中的球閱讀 688評論 2 13
  • 抄手抄的時候微信來信息了,一看是蔓蔓宾茂。蔓蔓:我這兩天看你的文章感覺你狀態(tài)不對瓷马。 我:我這兩天狀態(tài)確實不好,由于白夜...
    小魚記事錄閱讀 324評論 0 0
  • 這部捉妖記跨晴,借由胡巴和天蔭的親情告訴我們妖并不是異類欧聘,它只是這個世界的另外一個種族,而妖也和人一樣端盆,有好妖也有壞妖...
    花老板的喵閱讀 781評論 0 1