帮助解决错误 “从OptionalListViewController到UILabel的string1出口无效。无法将插座连接到重复内容。 “
代码:
@IBOutlet var string1: UILabel!
@IBOutlet var string2: UILabel!
@IBOutlet var string3: UILabel!
@IBOutlet var string4: UILabel!
@IBOutlet var string5: UILabel!
override func tableView(tableView: UITableView,
cellForRowAtIndexPath indexPath:
NSIndexPath) -> UITableViewCell {
let cell:UITableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
let dic:NSDictionary = _items.objectAtIndex(indexPath.row) as! NSDictionary
print(" Plist:\(dic)")
let str0:NSString = dic["0"]! as! NSString
let str1:NSString = dic["1"]! as! NSString
let str2:NSString = dic["2"]! as! NSString
let str3:NSString = dic["3"]! as! NSString
let str4:NSString = dic["4"]! as! NSString
let str5:NSString = dic["5"]! as! NSString
let str6:NSString = dic["6"]! as! NSString
let str7:NSString = dic["7"]! as! NSString
let str8:NSString = dic["8"]! as! NSString
string1.text = (str0 as String) + (str1 as String)
string2.text = (str2 as String) + (str3 as String)
string3.text = (str4 as String) + (str5 as String)
string4.text = (str6 as String) + (str7 as String)
string5.text = (str4 as String) + (str8 as String)
return cell
}
我不明白如何解决..
答案 0 :(得分:0)
您无法将IBOutlet连接到故事板上tableView中的单元格。如果要连接插座,则需要创建一个新的UITableViewCell子类并设计单元格。确保选中创建.xib文件的选项
您可以像查看控制器故事板一样将标签添加到此xib,并将它们连接到自定义单元代码,而不是视图控制器代码(xib是界面生成器文件)。这就是它的样子......非常类似于您的视图控制器故事板:
然后,您可以像使用普通单元一样使用自定义单元格,只需使用自定义类而不是UITableViewCell。
override func tableView(tableView: UITableView,
cellForRowAtIndexPath indexPath:
NSIndexPath) -> MyTableViewCell {
let cell:MyTableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath)
let dic:NSDictionary = _items.objectAtIndex(indexPath.row) as! NSDictionary
print(" Plist:\(dic)")
let str0:NSString = dic["0"]! as! NSString
let str1:NSString = dic["1"]! as! NSString
let str2:NSString = dic["2"]! as! NSString
let str3:NSString = dic["3"]! as! NSString
let str4:NSString = dic["4"]! as! NSString
let str5:NSString = dic["5"]! as! NSString
let str6:NSString = dic["6"]! as! NSString
let str7:NSString = dic["7"]! as! NSString
let str8:NSString = dic["8"]! as! NSString
string1.text = (str0 as String) + (str1 as String)
string2.text = (str2 as String) + (str3 as String)
string3.text = (str4 as String) + (str5 as String)
string4.text = (str6 as String) + (str7 as String)
string5.text = (str4 as String) + (str8 as String)
return cell
}
答案 1 :(得分:0)
使用动态细胞类型:
在storyboard tableview中,选择动态原型单元格并添加至少一个原型单元格,具体取决于您需要自定义的数量。
现在你的tableview应该从tableview中的0个单元格转到至少一个原型单元格。 你在这里做了什么告诉tableview为每次调用cellForRowAtIndexPath而不是仅仅使用静态单元格而不是仅使用静态单元格,而是在大型tableview列表中使用静态单元格。
设计它。你可以看到我有几个简单的图像视图和标签
使用iboutlet在代码中为它创建一个子类,并将它们连接到您设计的单元出口。这里的关键,我认为你的整个问题的真正答案是选择原型单元格,转到出口标签,然后拖放到你看到单元格列出的属性而不是视图控制器或tableview:
选择原型单元格(目前是UITableViewCell)并将其类设置为UITableViewCell子类。
确保在cellForRow方法中出列正确的单元格。
在所有这些之前,请确保您已经为tableview考虑了一个良好的数据结构,因为每次滚动tableview并使单元格出列时,您需要能够保持其状态。