这可能是一个简单的问题。我有一个UITableView,每个单元格都包含一个UIImageView。我想要实现的是
if(is under the editing mode)//Hide UIImageView
if(not in the editing mode)//Show UIImageView
我尝试使用tag访问那些UIImageView,但没有运气。对我而言,主要的诀窍是如何访问这些图像。
你怎么做?使用标签?父视图? 非常感谢:)
答案 0 :(得分:0)
您可以继承UITableView并覆盖方法
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
然后你可以将你的if else块放入其中。
PS:别忘了调用超类方法
您可以通过设置图像view.eg。
的隐藏属性来隐藏和显示图像imageView.hidden = YES;
您可以在头文件中定义图像,然后可以在班级的每个方法中访问它们。
答案 1 :(得分:0)
您可以在正在编辑的条件下隐藏cellForRowAtIndexPath
中的图像视图。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
...
if (self.editing)
imageView.hidden = YES;
...
}
然后在设置编辑时重新加载表视图:
-(void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
[self.tableView reloadData];
}
如果我正确理解您的问题,您想要访问所有tableView单元格并隐藏imageView。但这是不可能的,因为您的单元格(如果正确实现)重用,因此单元格数量可能小于表格视图中的行数。
这就是为什么你需要在cellForRowAtIndexPath
中设置有关单元格外观的所有内容。
答案 2 :(得分:0)
在尝试其他方法之后,我使用viewWithTag方法,它正在工作:)基本上,我从100开始标记,因为我知道在我的情况下一页中的视图不超过20个。
在我的cellForRowAtIndexPath函数中
UIImageView *checkMark = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checkMark.png"]];
checkMark.frame = CGRectMake(xx, xx, xx, xx);
checkMark.hidden = YES;
checkMark.tag = indexPath.row + 100;
然后我可以使用
访问我的所有图像for (int i = 100; i < [self.vehiclesArray count] + 100; i++) {
((UIImageView *)[self.view viewWithTag:i]).hidden = NO;
}