在 TableViewCell 中进行更改
Posted
技术标签:
【中文标题】在 TableViewCell 中进行更改【英文标题】:Make Change in TableViewCell 【发布时间】:2014-05-15 05:10:58 【问题描述】:我正在处理TableView
,我使用了TableViewCell
上的标签,然后单击按钮我想隐藏表格中所有单元格的标签,
在标签中我设置了标签:
label.tag = indexPath.row+1;
在按钮上单击我正在使用这样的代码:
for (int i = 0; i < Array.count; i++)
[[self.view viewWithTag:i+1] setHidden:YES];
但是从我的代码中,标签只隐藏在最后一个单元格中,而不是所有其他单元格中。
【问题讨论】:
什么是数组...显示? 使用委托/数据源方法并告诉tableview重新加载特定的单元格。 【参考方案1】:您可以通过其他方式简单地做到这一点。
首先你需要在你的类中声明一个 BOOL
@property(assign,nonatomic) BOOL hideLabels;
接下来在您的按钮操作处理程序方法中,设置此 YES
在您的cellForRowAtIndexPath中,检查hideLabels是否为YES,如果是,则使用代码隐藏标签。
cell.yourLabel.hidden = hideLabels;
现在将 hideLabels 设置为 YES
后重新加载表格[self.tableView reloadData];
【讨论】:
【参考方案2】: for(id object in tableView.subviews)
if([object isKindOfClass:[UILabel class]])
UILabel *label = (UILabel *) object;
[[label setHidden:YES];
【讨论】:
【参考方案3】:在你的 ViewController.h 中
BOOL isLabelHidden;
在 ViewController.m 中
- (void)viewDidLoad
isLabelHidden = FALSE;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *CellIdentifier = @"TableCell";
UILabel *lbl;
UITableViewCell *cell = (UITableViewCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell = nil;
if (cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
if(isLabelHidden)
[lbl setHidden:YES];
else
[lbl setHidden:NO];
在你的按钮点击方法
- (void)buttonClicked
isLabelHidden = TRUE;
[tableView reloadData];
【讨论】:
【参考方案4】:您应该首先获取对UITableViewCell
的引用,然后您可以删除其中的标签。
首先获取 tableview 中所有单元格的引用,如下所示:
NSMutableArray *cells = [[NSMutableArray alloc] init];
for (NSInteger j = 0; j < [tableView numberOfSections]; ++j)
for (NSInteger i = 0; i < [tableView numberOfRowsInSection:j]; ++i)
[cells addObject:[tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:i inSection:j]]];
现在遍历单元格数组中的那些单元格以隐藏标签视图,
for (int i = 0; i < cells.count; i++)
[[[cells objectAtIndex:i] viewWithTag:i+1] setHidden:YES];
来源:How can I loop through UITableView's cells?
【讨论】:
以上是关于在 TableViewCell 中进行更改的主要内容,如果未能解决你的问题,请参考以下文章
在自定义 tableviewcell 中更改 UIImage
iOS tableViewCell嵌套tableview,cell刷新紊乱解决办法
在 tableViewCell 内动态更改 UIImageView 的宽度和高度