UILabel文本重叠更新?

时间:2009-02-02 07:57:29

标签: cocoa-touch

在我的应用程序中,我从初始值0更改文本标签的值,并在触摸事件上增加它。有时,但不是所有时间,新值将覆盖在0上,这不是很酷..

这是相关代码:

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UILabel *label = (UILabel *)[cell viewWithTag:1000];
label.text = qtyString;

我尝试从视图中删除标签,然后使用新值添加另一个标签,但它根本不会影响问题。当我将单元格(标签是表格单元格的一部分)滚出屏幕并重新进入时,标签会正确显示。哦,我也尝试过做

[tableView reloadData];

它效果更好,但是如果我选择一个单元格然后在它被突出显示时滚动它会突然出现在那个单元格上。

请帮助:(

6 个答案:

答案 0 :(得分:17)

检查“清除图形上下文”对我有用,我一开始就不小心取消了它~~

答案 1 :(得分:5)

在您的UILabel选项UNCHECK'opaque'下,将修复它。

答案 2 :(得分:4)

我遇到了同样的问题,UILabel的文字变得混乱,我只是读了其他的解决方案,去了IB,然后检查了“在绘图前清除上下文”,这解决了它!

答案 3 :(得分:0)

改变不透明并不会改变它本身就是逻辑。如果给你的标签准确的高度你可以做什么..这个高度将匹配你的井高。如果您正在使用

  • (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    { 返回80; //返回浮点数,该浮点数将用于指定行索引的单元格行高度 }

就像我一样,然后制作标签80的高度也会阻止它......

答案 4 :(得分:0)

imho,解决这个问题的最好方法是在其他地方添加:

  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}else {
    NSArray *cellSubs = cell.contentView.subviews;
    for (int i = 0 ; i < [cellSubs count] ; i++) {
        [[cellSubs objectAtIndex:i] removeFromSuperview];
    }
}

希望这有帮助。

答案 5 :(得分:0)

在我的情况下,将Opaque更改为NO可以解决更新UILabel.text的问题 我在awakeFromNib中创建了uilabel。

相关问题