我有一个自定义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];
}
答案 0 :(得分:0)
我发现代码中有点乱。我可以这样做:
完成此设置后,您需要实现表格行。
这是一个例子
- (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数据。