在尝试将其作为VCView中的tableView页脚添加时,我遇到了一个恼人的内存问题与自定义UIView。这是我的工作:
代码可以很好地显示页脚,但它破坏了我的内存 - 当我运行我的应用程序并打开包含该tableViewHeader的VC时,我的内存跳跃大约20MB(约20%的跳跃)并且没有#39;一旦我的VC被释放就会被释放(我检查过,VC本身被正确地解除了初始化但它没有显示任何内存下降)。
我测试了一些东西:
关于罪魁祸首是什么/如何解决它的想法已经不多了所以你能给我的任何帮助都会非常感激!
我的代码如下 - 提前感谢! 弗朗索瓦
我的TableFooterView类:
class MessageTableFooterView: UIView {
var shouldUpdateConstraints = true
var logoView: UIImageView!
var explanationTextView: UITextView!
var addFriendBtn: UIButton!
override init(frame: CGRect){
super.init(frame: frame)
logoView = UIImageView(frame: CGRect.zero)
logoView?.autoSetDimension(.height, toSize: 145)
logoView?.autoSetDimension(.width, toSize: 145)
self.addSubview(logoView)
explanationTextView = UITextView(frame: CGRect.zero)
explanationTextView?.isEditable = false
explanationTextView?.isSelectable = false
explanationTextView?.font = UIFont(name: "HelveticaNeue", size: 17)
explanationTextView?.textColor = .darkGray
explanationTextView?.textAlignment = .center
self.addSubview(explanationTextView)
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
}
我的tableView viewForFooter方法:
func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
if MessageService.instance.savedMsgs.count > 0 {
return nil
} else {
let headerView = MessageTableFooterView(frame: CGRect.zero)
headerView.logoView.image = UIImage(named: "savedMessagesIcon")
headerView.explanationTextView?.text = "Blablabla"
return headerView
}
}