1蹂析,tableview點擊選中效果管削,放開點擊后選中效果消失彪置。只需重寫tableview的delegate方法
@available(iOS 6.0, *)
public func tableView(_ tableView: UITableView, shouldHighlightRowAt indexPath: IndexPath) -> Bool{
return true
}
@available(iOS 2.0, *)
public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath){
tableView.cellForRow(at: indexPath)?.isSelected = false
}
2,使用collectionview時出現(xiàn)錯誤吏砂,使用的是storyboard進行布局撵儿,由于多個collectionview使用同一個cell類,第一個collectionview沒問題狐血,后面幾個都出現(xiàn)如下錯誤
“terminating with uncaught exception of type NSException”
分析原因時以為是不能復用或者說復用出現(xiàn)了問題淀歇,后面發(fā)現(xiàn)時storyboard中關(guān)聯(lián)變量出問題了。
有時候?qū)τ诓季殖霈F(xiàn)了崩潰匈织,一定先排查下是否在storyboard中這些引用失效了浪默,如果在storyboard中還有關(guān)聯(lián)牡直,但是實際代碼中去掉了,就會關(guān)聯(lián)失敗導致崩潰纳决。
3碰逸,SDWebImage再collectionview的cell中加載圖片出現(xiàn)錯亂
錯亂的原因肯定是reuse造成的,我這邊出現(xiàn)這個原因的場景是item可增加和刪除阔加,在圖片加載的過程總饵史,刪除這個item,就會出現(xiàn)刪除的item原來要顯示的圖片顯示在別的item上了胜榔。解決方案是在item的prepareForReuse中加入以下代碼胳喷,記得兩句都要加,只加第一句有時候解決不了問題
override func prepareForReuse() {
defaultimg.sd_cancelCurrentImageLoad()
defaultimg.image = UIImage(named:"edit_avatar_default")
}
這個地方需要注意的一個坑是如果使用的是kingfish框架加載圖片夭织,用同樣的處理方式吭露,仍然會有圖片錯亂。
kingfish框架對這類問題的處理如下:
override func prepareForReuse() {
background.kf.cancelDownloadTask()
background.kf.setImage(with: nil)//這句不能少尊惰,少了之后也會出現(xiàn)錯亂
background.image = nil
}
4讲竿,計算UILabel的寬度
如果有多個view,放置一行择浊,然后整體居中戴卜,對于多語言支持的UILabelview,由于是設(shè)置文字之后才知道寬度琢岩,所以需要在設(shè)置文字后投剥,再通過調(diào)整constraints來讓view居中
但是在使用nameLabel.frame.width來計算寬度時,發(fā)現(xiàn)設(shè)置不同的text返回的長度還是一樣的担孔。實際上應(yīng)該是用
nameLabel.intrinsicContentSize.width
這句代碼應(yīng)該是在設(shè)置完了text之后調(diào)用江锨。