由于系統(tǒng)默認(rèn)的UITableView的下劃線在自定義的時(shí)候并不方便紫谷。系統(tǒng)有一個(gè)方法
tableview setSeparatorInset:inset
1
可以修改分割線的起始和終止位置,但是對分割線的粗細(xì)和顏色還是無法隨心所欲的修改斩启。
因此我們通常采用自定義一個(gè)UITableViewCell的方法來模擬系統(tǒng)提供的分割線篮条。
實(shí)現(xiàn)思路如下:首先創(chuàng)建一個(gè)繼承自UITableViewCell的子類诞丽,并在這個(gè)類的view的底部創(chuàng)建一個(gè)UIView,將view的高度設(shè)為很小的數(shù)值顷啼,顏色改為黑色(深灰色)荐虐,從而偽裝成一條線七兜。
最近使用這種方法遇到一個(gè)問題,首先是如果一個(gè)cell里面有幾條線福扬,可能會(huì)在某種機(jī)型的某個(gè)cell中腕铸,出現(xiàn)有的線畫不出來的情況惜犀。并且在所以機(jī)型上,滑動(dòng)tableview的時(shí)候狠裹,自定義的分割線粗細(xì)會(huì)發(fā)生變化虽界,有時(shí)候粗,有時(shí)候會(huì)變細(xì)涛菠。
搜遍了stackoverflow也沒有找到原因所在(英語太渣)莉御,嘗試了好久之后大概摸索出了一些。首先俗冻,不能為了追求細(xì)線的效果礁叔,而把uiview的高度設(shè)置的太小。推薦高度至少是0.5-1左右迄薄。
比如可以這樣創(chuàng)建separator:
UIView *separator = [[UIView alloc]initWithFrame:CGRectMake(0? cell.height,cell.width,0.5);
1
如果separator的高度太低琅关,可能造成無法繪制到屏幕上的bug。同樣的原因讥蔽,在滑動(dòng)的過程中涣易,由于UITableView的重繪,也會(huì)造成粗細(xì)上的偏差勤篮,其實(shí)這個(gè)偏差在任何時(shí)候都會(huì)存在都毒,只是因?yàn)樽远x的separator太細(xì)色罚,導(dǎo)致偏差會(huì)大幅度的影響用戶的視覺效果碰缔。
沒有想到有效的解決辦法,不過總結(jié)了幾點(diǎn)可能改善用戶體驗(yàn)技巧:
1.不要使用UIView的子類(如UIImageView)去繪制separator戳护,這樣會(huì)降低繪制效率金抡。
2*.separator的frame.size.height不能太細(xì),推薦在0.5-1之間腌且,如果覺得太厚梗肝,可以嘗試使用淡色,讓separator看起來細(xì)一些铺董。
3.嘗試在drawRect方法中繪制細(xì)線巫击。
4.由于cell可以重用,可以嘗試用storyboard來畫出某一個(gè)cell精续,然后重用(僅為猜測坝锰,是否能夠提升用戶體驗(yàn)并沒有經(jīng)過測試)
---------------------
作者:bestswifter
來源:CSDN
原文:https://blog.csdn.net/abc649395594/article/details/44617767
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接重付!