我的自定义UITableViewCell中的UILabel不能正确更改文本

时间:2014-09-10 11:06:16

标签: uitableview uilabel

我有一个自定义UITableViewCell我有一个标签,显示舔的大量, 当我绘制单元格时,一切都很好,但是当我试图更改标签文本时,它会重叠在自己身上(而且非常难过)。

我尝试删除并重新添加,还尝试设置needsDisplay,但它并没有帮助我:(

这是我的代码:

在DrawLabel方法中

//we will start from the labels: licks and comments
_licksLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 5, self.frame.size.width, 40)];
[_licksLabel setText:[NSString stringWithFormat:@"%@ %@",[_dict objectForKey:@"loves"],LocalizedString(@"licks")]];

[_licksLabel setFont:[UIFont fontWithName:FONT_REGULAR size:15]];

[_licksLabel sizeToFit];
[_licksLabel setTextColor:UIColorFromRGB(grey4)];
[self addSubview:_licksLabel];

当我想在另一种方法中更改标签的文字时

- (void)meLike
{

if ([[_dict objectForKey:@"self_loved"]integerValue]>0)
{
  //  return;
}
[_licksLabel removeFromSuperview];
[FeedAPI loveFeedWithId:[_dict objectForKey:@"id"]];
[_dict setValue:[NSNumber numberWithInt:1] forKeyPath:@"self_loved"];
[_dict setValue:[NSNumber numberWithInt:[[_dict objectForKey:@"loves"]integerValue]+1] forKeyPath:@"loves"];
[_licksLabel setText:[NSString stringWithFormat:@"%@ %@",[_dict objectForKey:@"loves"],LocalizedString(@"licks")]];
[_licksButton setImage:[UIImage imageNamed:@"ic_lick_on.png"] forState:UIControlStateNormal];
[self setNeedsDisplay];
[super setNeedsDisplay];
[self addSubview:_licksLabel];
}

2 个答案:

答案 0 :(得分:0)

我发现代码中有点乱。我可以这样做:

  • 使用界面构建器将UITableViewCell原型添加到表
  • 分配(通过接口构建器)重用标识符(例如“cell”)
  • 在这个UITableViewCell中添加一个UILabel(通过界面)并将其放在任何你喜欢的地方
  • 为UILabel分配标签(例如1)

完成此设置后,您需要实现表格行。

这是一个例子

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   UITableViewCell *cell;

   cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];

   UILabel *name = (UILabel *) [self.tableView viewWithTag:1];
   name.text =  @"whateveryouwant;

   return cell;
}

答案 1 :(得分:0)

好的,感谢帮助我解决了这个问题 解决方案是重新加载tableview数据。