在UITableViewCell iOS 8(Swift)中隐藏对象

我有一个触摸的UITableViewCell ,展开(下拉列表)。 然后向用户呈现选项的select。 当用户触摸其中一个选项时,我想暂时隐藏所有选项,显示一个活动指示器旋转,显示确认消息(成功),然后折回单元恢复正常。

我无法隐藏自定义单元格内的任何对象。 以下简单代码不起作用(这是与单元格对应的正确的超级视图):

 var customCell: MyCustomCell = icon.superview.superview.superview as MyCustomCell customCell.myLabel.hidden = false 

我试图隐藏/显示各种不同的对象,但没有任何作品。 我甚至在dispatch_asyncpopup它,以确保它在主线程上运行。

另外,Xcode 6 beta告诉我, myLabel.hidden是只读的。 这也发生在其他对象上。 这是不是正确的方法来隐藏的东西?

我已经search了一下,但没有find答案的运气。 如果有人能帮助我,我将不胜感激! 谢谢。

通常做这样的事情的方法是实现UITableViewDelegate方法-tableView:didSelectRowAtIndexPath:让你知道什么时候点击一行。

然后你可以很容易地获取和修改单元格

 var customCell = self.tableView.cellForRowAtIndexPath(indexPath) as MyCustomCell customCell.myLabel.hidden = false 

我认为线icon.superview.superview.superview是一个代码气味 。 如果您更改单元格中的视图层次结构,多个超级视图调用将使您的代码变得脆弱并可能中断。

Interesting Posts