我正在开发一个与“Instagram”具有相同 UI 的应用程序。我有一个供用户滚动并查看朋友添加的新图片的提要墙,类似于 instagram 。每个 UITableViewcell 都有一张图片和自己的部分 Header 视图。我通过为每个单元格制作部分来实现这一点。但我担心内存泄漏
这是我的代码
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerView = UIView(frame: CGRectMake(0, 0, tableView.frame.size.width, 45))
headerView.tag = 101
let imageView :UIImageView = UIImageView(frame: UtilityManager.setFrameWithOutHeight(CGRectMake(22, 5 , 30, 30)))
imageView.backgroundColor = UIColor.blueColor()
imageView.tag = 101
imageView.layer.cornerRadius = 15.0
imageView.clipsToBounds = true
imageView.layer.borderWidth = 1
imageView.layer.borderColor = UIColor.grayColor().CGColor
headerView.addSubview(imageView)
var label = UILabel(frame: UtilityManager.setFrameWithOutHeight(CGRectMake(50, 5, 320 - 60 , 35)))
label.textAlignment = NSTextAlignment.Left
label.backgroundColor = UIColor.clearColor()
label.textColor = UIColor(red: 1, green: 0.28, blue: 0.27, alpha: 1)
label.text = "I'am a test label"
label.font = UIFont(name: Constants.FONT_MEDIUM, size: 12)
headerView.addSubview(imageView)
headerView.backgroundColor = UIColor.clearColor()
return headerView
}
顺便说一句,我正在使用 Swift。它太酷了不是吗;)。让我详细解释一下这个委托函数来制作自定义部分的标题。每次当我的任何单元格或部分出现在屏幕上时,即使我滚动回已经分配了 headerView 的部分,也会调用此委托方法。因此,在滚动时会为一个部分多次创建 headerView。但我知道这是错误的方法,必须检查天气 headerView 是否已创建。如果我的视图确实存在于内存中,是否有任何方法可以检查代码,然后无需再次分配内存。有人请帮忙:)。即使是一点点帮助,我也会感激不尽。