我正在使用第三方框架。我需要重写单元格类。所以我创建了一个子类。并以viewDidLoad()
方法注册单元格类。但是问题是,在超类中,他们还注册了自己的单元格,并在layoutIfNeeded()
中调用了viewDidLoad
方法。所以我的细胞班不被叫。
在这里,我正在寻找解决方案。
编辑:
超类代码
- (void)viewDidLoad {
[super viewDidLoad];
[self reloadData];
[tableView registerNib:[UINib nibWithNibName:@"BUserCell" bundle:[NSBundle chatUIBundle]] forCellReuseIdentifier:bUserCellIdentifier];
[self setGroupNameHidden:YES duration:0];
}
superClass代码,其中setGroupNameHidden
具有layoutIfNeeded()
代码。更重要的是,这不是公共方法。
我的代码:
override func viewDidLoad() {
super.viewDidLoad()
self.title = "New Conversation"
self.tableView.register(UINib.init(nibName: "NewConversationContactCell", bundle: Bundle.main), forCellReuseIdentifier: "bUserCellIdentifier")
self.tableView.reloadData()
}
就像我说过的那样,如果我注释掉setGroupNameHidden:duration:
方法会调用超类单元类,那么我的单元类就会被调用。
答案 0 :(得分:0)
您可以简单地忽略呼叫super.viewDidLoad()
还有另一种方法-覆盖setGroupNameHidden:duration:
方法(必要时将其留空)
答案 1 :(得分:0)
缺少代表呼叫。 替换
self.tableView.reloadData()
与
self.tableView.delgate = self
self.tableView.dataSource = self
self.tableView.reloadData()