這幾天遇到一個bug,直接上圖比較直觀。

直接截圖,如圖是一個tableView .然后里是imageView,titleLabel,subtitleLabel
是自己創(chuàng)建然后添加到cell.contentview上的。label的frame根據(jù)需要顯示的內(nèi)容進(jìn)行計算得到的。是可以正常顯示的。
但是在進(jìn)行多選的時候,會出現(xiàn)一個奇怪的問題,如圖中顯示,會出現(xiàn)一條橫線。因為label是默認(rèn)沒有邊框的,所有感覺應(yīng)該不是label的問題。但是也沒有什么思路。通過通過View Hierarchy看了看視圖的層級結(jié)構(gòu)也沒有發(fā)現(xiàn)有什么多余的內(nèi)容。無奈之下到網(wǎng)上開始查詢。
然后搜到一個類似問題。 iOS UILabel 邊框出現(xiàn)黑線問題
然后博主給的原因是 在計算每個label 的frame時因為是根據(jù)text的文字多少與字體大小有關(guān),造成frame的size 中width 跟height 有小數(shù)部分,只要將其width與height改為int類型即可解決改問題。
看著還是覺得疑惑,明明CGRectMake 傳參的數(shù)據(jù)類型是Float 為什么要強(qiáng)轉(zhuǎn)為int呢?
但是按著博主提供的方法,居然解決了我的這個bug。
然后還查到一個解決辦法。Cell編輯模式下選中 Cell內(nèi)圖片出現(xiàn)白線。跪求解決方案
這位博主遇到的問題是imageView會出現(xiàn)白線,和我的有點類似。雖然有人給了解決辦法但是也沒解釋原因。設(shè)置一下UITableView的allowsMultipleSelectionDuringEditing屬性為YES。我試了試也是可以解決的。這個屬性設(shè)置之后當(dāng)tableView處于編輯狀態(tài)時就自動變成多選模式,無論你在代理方法里選擇的是什么編輯模式。
雖然解決了這個問題,但是還是一頭霧水。而且兩個解決方案完全不是一個方向。我感覺是采用了系統(tǒng)的多選,所以有些問題。