Cell偽裝分割線(xiàn)粗細(xì)不一致問(wèn)題

由于系統(tǒng)默認(rèn)的UITableView的下劃線(xiàn)在自定義的時(shí)候并不方便。系統(tǒng)有一個(gè)方法

tableview setSeparatorInset:inset

1

可以修改分割線(xiàn)的起始和終止位置,但是對(duì)分割線(xiàn)的粗細(xì)和顏色還是無(wú)法隨心所欲的修改。

因此我們通常采用自定義一個(gè)UITableViewCell的方法來(lái)模擬系統(tǒng)提供的分割線(xiàn)。

實(shí)現(xiàn)思路如下:首先創(chuàng)建一個(gè)繼承自UITableViewCell的子類(lèi),并在這個(gè)類(lèi)的view的底部創(chuàng)建一個(gè)UIView,將view的高度設(shè)為很小的數(shù)值,顏色改為黑色(深灰色),從而偽裝成一條線(xiàn)。

最近使用這種方法遇到一個(gè)問(wèn)題,首先是如果一個(gè)cell里面有幾條線(xiàn),可能會(huì)在某種機(jī)型的某個(gè)cell中,出現(xiàn)有的線(xiàn)畫(huà)不出來(lái)的情況。并且在所以機(jī)型上,滑動(dòng)tableview的時(shí)候,自定義的分割線(xiàn)粗細(xì)會(huì)發(fā)生變化,有時(shí)候粗,有時(shí)候會(huì)變細(xì)。

搜遍了stackoverflow也沒(méi)有找到原因所在(英語(yǔ)太渣),嘗試了好久之后大概摸索出了一些。首先,不能為了追求細(xì)線(xiàn)的效果,而把uiview的高度設(shè)置的太小。推薦高度至少是0.5-1左右。

比如可以這樣創(chuàng)建separator:

UIView *separator = [[UIView alloc]initWithFrame:CGRectMake(0? cell.height,cell.width,0.5);

1

如果separator的高度太低,可能造成無(wú)法繪制到屏幕上的bug。同樣的原因,在滑動(dòng)的過(guò)程中,由于UITableView的重繪,也會(huì)造成粗細(xì)上的偏差,其實(shí)這個(gè)偏差在任何時(shí)候都會(huì)存在,只是因?yàn)樽远x的separator太細(xì),導(dǎo)致偏差會(huì)大幅度的影響用戶(hù)的視覺(jué)效果。

沒(méi)有想到有效的解決辦法,不過(guò)總結(jié)了幾點(diǎn)可能改善用戶(hù)體驗(yàn)技巧:

1.不要使用UIView的子類(lèi)(如UIImageView)去繪制separator,這樣會(huì)降低繪制效率。

2*.separator的frame.size.height不能太細(xì),推薦在0.5-1之間,如果覺(jué)得太厚,可以嘗試使用淡色,讓separator看起來(lái)細(xì)一些。

3.嘗試在drawRect方法中繪制細(xì)線(xiàn)。

4.由于cell可以重用,可以嘗試用storyboard來(lái)畫(huà)出某一個(gè)cell,然后重用(僅為猜測(cè),是否能夠提升用戶(hù)體驗(yàn)并沒(méi)有經(jīng)過(guò)測(cè)試)

---------------------

作者:bestswifter

來(lái)源:CSDN

原文:https://blog.csdn.net/abc649395594/article/details/44617767

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

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

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒(méi)有地址/指針的概念1.2> 泛型1.3> 類(lèi)型嚴(yán)謹(jǐn) 對(duì)...
    cosWriter閱讀 11,683評(píng)論 1 32
  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱(chēng)項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,228評(píng)論 3 119
  • 本文作者:千花坊 千花坊覺(jué)得一段愛(ài)情好不好,在女生身上就體現(xiàn)的出來(lái)。 一個(gè)女孩子自信有趣,那她身后肯定有個(gè)愿意寵愛(ài)...
    的卡夫卡的閱讀 255評(píng)論 0 0
  • 視圖 視圖是一個(gè)虛擬表(非真實(shí)存在),其本質(zhì)是【根據(jù)SQL語(yǔ)句獲取動(dòng)態(tài)的數(shù)據(jù)集,并為其命名】,用戶(hù)使用時(shí)只需使用【...
    go以恒閱讀 426評(píng)論 0 0
  • 第三期自由書(shū)寫(xiě) 第十八天 現(xiàn)場(chǎng)直播0012018.04.02 【第十八天】 第一部分: 你有特別渴望獲得某個(gè)人的感...
    慧心如蓮閱讀 281評(píng)論 0 1

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