当我尝试addSubView()到UITableViewCell时,我收到了这个错误消息。
错误消息
2015-05-18 11:26:46.048 xxxxx1128:437863 * -UITableView -UITableView 2015-05-18 11:46.053 DateTick1128:437863 *终止应用程序因未命名的异常“NSInternalInconsistencyException”原因:“无法使用标识符AgeCell --必须为标识符注册一个nib或类或在情节提要中连接原型单元格”*第一次抛出调用堆栈:(0x1856982d8 0x196ebc0e4 0x185698198 0x18654ced4 0x18a251e84 0x100094c20 0x100095070 0x18a3d9a68 0x3cd890 0x571b9268 0x18a60 0x189a1de1c 0189a84 0x189a18a18728 0x189a17ebc 0xa17c17ebc 0xa170c 180x5x364 0 NSException )
我已经在AgeCell标识符中声明了UITableViewCell

我的代码:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("AgeCell", forIndexPath: indexPath) as! UITableViewCell //1
let slider = RangeSlider(frame:cell.bounds)
slider.minimumValue = 1;
slider.selectedMinimumValue = 2;
slider.maximumValue = 10;
slider.selectedMaximumValue = 8;
slider.minimumRange = 2;
slider.addTarget(self, action:"updateRangeLabel", forControlEvents:UIControlEvents.ValueChanged)
cell.addSubview(slider)
return cell
}顺便说一下,我的UITableViewController是一个静态单元,而不是一个动态单元。
发布于 2015-07-25 09:24:02
Swift的语法是
let nib = UINib(nibName: "AgeCell", bundle: nil)
self.tableView.registerNib(nib, forCellReuseIdentifier:"AgeCell")发布于 2015-05-18 07:26:34
注意,dequeueReusableCellWithIdentifier:和dequeueReusableCellWithIdentifier是不同的方法。
文件上说:
注意:在调用此方法之前,您必须使用registerNib:forCellReuseIdentifier:或registerClass:forCellReuseIdentifier: method注册一个类或nib文件。
有关此主题的更多细节,请参见Check out this Q&A.
迅速注册NIB:
UINib nib = UINib.nibWithNibName("AgeCell", bundle:nil);
self.tableView.registerNib(nib, forCellReuseIdentifier:"AgeCell");发布于 2015-05-18 05:22:10
您需要向UITableView注册您的手机的nib。这样,UITableView就会知道您的reuseIdentifier "AgeCell"与单元格匹配。您通常在viewDidLoad中为视图控制器执行此操作。
在目标C中:
-(void)viewDidLoad {
[super viewDidLoad];
UINib * nib = [UINib nibWithNibName:@"AgeCell" bundle:nil];
[self.tableView registerNib:nib forCellReuseIdentifier:@"AgeCell"];
}在Swift:
override func viewDidLoad() {
super.viewDidLoad()
let nib = UINib(nibName: "AgeCell", bundle: nil)
self.tableView.registerNib(nib, forCellReuseIdentifier:"AgeCell")
}https://stackoverflow.com/questions/30294656
复制相似问题