您好,登錄后才能下訂單哦!
公司的項目,需要做一個類似QQ空間動態展示的一個頁面如下圖(忽略UI :))~
上圖可以看出一個Section分為三個row,第一個row是頭像、名字、時間。第二個row是文字、圖片。第三行是點贊加評論按鈕。
首先是cell重用問題,使得第二個row的圖片重疊,如下圖:
解決方法:(用Storyborad寫布局的小伙伴,這里最好不要在這個cell中拖拽控件進去)
這個方法是通過刪除重用的cell的所有子視圖,從而得到一個沒有特殊格式的cell,供其他cell重用。
Indetifiername = "blogCell"
var cell2:BlogCellTableViewCell? = tableView.dequeueReusableCellWithIdentifier(Indetifiername) as? BlogCellTableViewCell
var blogp_w_picpath:UIImageView?
if cell2 == nil{
cell2 = BlogCellTableViewCell(style:UITableViewCellStyle.Default,reuseIdentifier:Indetifiername)
}
else{
//刪除所有子視圖
while(cell2?.contentView.subviews.last != nil){
cell2?.contentView.subviews.last?.removeFromSuperview()
}
}
//其他賦值代碼
cell重用導致數據丟失
完成點贊效果,點擊按鈕點贊按鈕時候,顏色改變,然后提示點贊成功如下圖
然后奇怪的是,上滑動或下滑動之后,顏色就會變回原來的顏色,但是數據已經提交到服務器,整個tableview reloadData之后會顯示已經點贊。
解決方式
新建一個NSMutableSet(),用來存放你點贊的blog的id,點贊,存進去,取消點贊,刪除(普通的數據丟失,在didSelecetRow里面存放indexPath就好了)反正存一個唯一的標記。
然后在加載cell的最后做一個判斷,判斷所有的blogid中哪些存起來,那么就顯示點贊
困擾了3天的問題終于解決了~感謝一下幫助我的文章
http://www.2cto.com/kf/201304/204114.html
http://www.jianshu.com/p/c2a9c449d93f
如果有小白想看Swift自適應高度的cell和Label請點進我的博客列表,尋找“Swift 自適應cell與Label的高度”的這篇文章~謝謝大家關注!本人菜鳥,希望大家多多批評與指教~
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。