我正在开发一款带有UITableView
的Swift iOS应用。我使用XCode Storyboard
为原型单元格添加了一些标签。我还在原型单元格中添加了一个自定义UIView
类。我可以使用viewWithTag
来访问标签的内容,但我无法访问自定义UIView
中的变量。我需要传入一些整数,以便正确生成饼图。
我的自定义视图的类是:
class protoBubbleView: UIView {
var necessaryInteger = 0
我为它分配了一个9的标签。我尝试以这种方式访问它:
let lbl : protoBubbleView = cell.viewWithTag(9)!
lbl.necessaryInteger = 5
但是我收到错误,表明viewWithTag只返回UIView,而且这不能分配给protoBubbleView的lbl。
如何访问此子视图中的变量?
谢谢。
答案 0 :(得分:3)
viewWithTag
返回常规UIView - 您需要使用as?
或as!
运算符将返回值强制转换为protoBubbleView,具体取决于您遇到问题时的行为(即当没有该标签的视图,或者它不是protoBubbleView时)
有关详细信息,请参阅Downcasting
答案 1 :(得分:1)
添加.contentView.
,因此
cell.contentView.viewWithTag(9)
或者,我建议使用IBOutlets,从您的Storyboard中按住Ctrl键拖动到Cell子类中,然后使用cell.protoBubbleView。
另外,正如Jacek所说,用作!/?使其成为ProtoBubbleView以访问其子变量