滚动时隐藏自定义表格视图单元格标签如何解决?
Posted
技术标签:
【中文标题】滚动时隐藏自定义表格视图单元格标签如何解决?【英文标题】:Custom table view cell label hiding when scroll how to solve this? 【发布时间】:2013-10-15 06:51:38 【问题描述】:“我正在使用自定义单元格类来显示时间,它显示成功,但问题是当我向下滚动表格视图时,然后那个计时器标签没有显示。我使用了这段代码,但是当我向下滚动并再次向上滚动时计时器隐藏的单元格标签,我不知道如何解决这个问题“
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
NSString *CellIdentifier = [NSString stringWithFormat:@"%d_%d",indexPath.section,indexPath.row];
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
cell = [[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
[[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil];
cell=customCell;
return cell;
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
MyCell *cell = (MyCell *)[tableView cellForRowAtIndexPath:indexPath];
[cell startTimer:indexPath];
//这里是mycell类代码
- (void) startTimer:(NSIndexPath *)indexPath
if (self.timer)
[self.timer invalidate];
currentIndexPath=indexPath;
self.secondsLeft=10;
self.timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(calculateTimer) userInfo:nil repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:self.timer forMode:NSRunLoopCommonModes];
[self.timer fire];
- (void)calculateTimer
if (self.secondsLeft >0)
self.secondsLeft --;
self.timeLbl.text=[NSString stringWithFormat:@"0%d",self.secondsLeft];
self.showLbl.text=[NSString stringWithFormat:@"0%d",self.secondsLeft];
if (self.secondsLeft==0)
[self.timer invalidate];
self.timeLbl.text=@"";
-(void)showTimer
self.timeLbl.text=[NSString stringWithFormat:@"%d",self.secondsLeft];
NSLog(@"this is self second%d",self.secondsLeft);
【问题讨论】:
【参考方案1】:这意味着它不刷新在你的方法中包含这些行:-
[tableView reloadData];
【讨论】:
不,这并不意味着滚动计时器标签隐藏 确定一个问题,您从哪里调用此 showTimer 方法?? - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath MyCell *cell = (MyCell *)[tableView cellForRowAtIndexPath:indexPath]; [单元格开始计时器:索引路径]; 【参考方案2】:试试这个....
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath: (NSIndexPath *)indexPath
NSString *CellIdentifier = [NSString stringWithFormat:@"%d_%d",indexPath.section,indexPath.row];
MyCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
if (cell == nil)
cell = [[MyCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
[[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil];
cell=customCell;
将 ReuseIdentifier 设置为 nil。
如果您有任何问题,请告诉我。
更新答案
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
CustomCell *cell = (CustomCell *) [tableView dequeueReusableCellWithIdentifier:nil];
if (cell == nil)
cell = (CustomCell *)[[[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil] objectAtIndex:0];
cell.textLabel.text=@"XYZ";
【讨论】:
我使用了你的代码,但同样的事情正在发生,谢谢。 查看我的更新答案。试试看,让我知道。 我不必在这里使用 cell.textLabel.text 我必须在我的 myCell 类中使用它你可以在上面看到我的代码。以上是关于滚动时隐藏自定义表格视图单元格标签如何解决?的主要内容,如果未能解决你的问题,请参考以下文章