我在UITableView中显示了一个朋友列表。首先在本地提取数据(通过SQLLite DB),在后台通过Web服务提取已修改的朋友。 当Web服务提供其他数据并更新tableview以显示此数据时,有时最后一个单元的UIImageView会显示一个空白'图片。如果在同一视图中重新生成单元格(通过滚动),则图像显示正确。此外,一旦重新加载视图(通过外出并再次返回),图像就会正确显示。
我使用SDWebImage SDK加载和缓存图像。
单元格出列代码:
var cellFriend = self.friendsData[indexPath.row]
let imageBaseURL = NSURL(string:BaseUrl + cellFriend.image)
cell.friendImage.setImageWithURL(imageBaseURL, placeholderImage: UIImage(named:"place-holder-profile-pic@3x.png"))
cell.friendImage.layer.cornerRadius = cell.friendImage.frame.size.width/2
cell.friendImage.layer.masksToBounds = true
将SQLLite中的数据添加到朋友模态中,并使用indexpath.row
作为索引显示在单元格中。
我可能做错了什么?我在整个应用程序中使用了类似的代码,这个问题并没有出现在任何地方。
更新:
以下是从数据库加载模型的代码。
for dict in friendSQLArray{
var id:Int = dict.objectForKey("id") as! Int!
var email:String = dict.objectForKey("email") as! String!
var fName:String = dict.objectForKey("first_name") as! String!
var lName: String = dict.objectForKey("last_name") as! String!
var firstChar:String = dict.objectForKey("fName") as! String!
var localPersonaID:Int = dict.objectForKey("persona_id") as! Int!
var personaName:String = dict.objectForKey("persona_name") as! String!
var image:String = dict.objectForKey("photo") as! String!
var status:String = dict.objectForKey("profile_status") as! String!
var friendStatus:String = dict.objectForKey("status") as! String!
var toUserID:Int = dict.objectForKey("to_user_id") as! Int!
var userID:Int = dict.objectForKey("user_id") as! Int!
var userName:String = dict.objectForKey("user_name") as! String!
var userPersonaID:Int = dict.objectForKey("user_persona_id") as! Int!
var userStatus:Int = dict.objectForKey("user_status") as! Int!
var lastActionID:Int = dict.objectForKey("last_action_by_user_id") as! Int!
var friend = FriendDBModel(id: id, userID: userID, userName: userName, fname: fName, lname: lName, email: email, status: status, image: image, firstChar: firstChar, personaID: localPersonaID, personaName: personaName, toUserID: toUserID, userPersonaID: userPersonaID, userStatus: userStatus, friendStatus: friendStatus, lastActionID:lastActionID)
self.friendsData.append(friend)
}
所有数据都存在,并且通过浏览器访问时图像可见。