如何在iOS Swift Project中访问UITableViewCell contentView子视图中的变量

时间:2016-01-10 03:22:58

标签: ios swift uitableview

我正在开发一款带有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。

如何访问此子视图中的变量?

谢谢。

enter image description here

2 个答案:

答案 0 :(得分:3)

viewWithTag返回常规UIView - 您需要使用as?as!运算符将返回值强制转换为protoBubbleView,具体取决于您遇到问题时的行为(即当没有该标签的视图,或者它不是protoBubbleView时) 有关详细信息,请参阅Downcasting

答案 1 :(得分:1)

添加.contentView.,因此

cell.contentView.viewWithTag(9)

或者,我建议使用IBOutlets,从您的Storyboard中按住Ctrl键拖动到Cell子类中,然后使用cell.protoBubbleView。

另外,正如Jacek所说,用作!/?使其成为ProtoBubbleView以访问其子变量