我想隐藏/取消隐藏UIView
中的UITableViewCell
,但很多时候它会为错误的UITableViewCell
取消隐藏它。有什么建议吗?
cellForRowAtIndexPath函数
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("locationCell", forIndexPath: indexPath) as? UITableViewCell
var viewWithImage = cell?.viewWithTag(22) as UIView!
var cellHiddenGemView = viewWithImage?.viewWithTag(23) as UIView!
var locationObject : PFObject = locationObjects[indexPath.row] as! PFObject
var isSecret = locationObject["isSecret"] as! Bool
cellHiddenGemView?.hidden = true;
if isSecret == true
{
cellHiddenGemView?.hidden = false;
//this view is unhides for the wrong indexes also
}
return cell;
}
答案 0 :(得分:1)
它绝对不是使用标签而不是子类化UITableViewCell并使用IBOutlets的最佳解决方案。
如果你是UITableViewCell的子类,你可以覆盖prepareForReuse()
并将hidden
属性重置为 true
func prepareForReuse()
{
self.HiddenGemView?.hidden = true
}
答案 1 :(得分:0)
尝试定义else
块。一旦这对我有用。
if isSecret == true
{
cellHiddenGemView?.hidden = false;
}
else
{
cellHiddenGemView?.hidden = true;
}