Cocoa touch UILabel文本在更新时重叠?
在我的应用程序中,我将文本标签的值从初始值0更改为增量,并在触摸事件中递增。有时,但并非始终,新值将覆盖在0上,这并不酷 以下是相关代码:Cocoa touch UILabel文本在更新时重叠?,cocoa-touch,Cocoa Touch,在我的应用程序中,我将文本标签的值从初始值0更改为增量,并在触摸事件中递增。有时,但并非始终,新值将覆盖在0上,这并不酷 以下是相关代码: UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; UILabel *label = (UILabel *)[cell viewWithTag:1000]; label.text = qtyString; 我尝试从视图中删除标签,然后添加另一个具有新值的标签,但这根本不会
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
UILabel *label = (UILabel *)[cell viewWithTag:1000];
label.text = qtyString;
我尝试从视图中删除标签,然后添加另一个具有新值的标签,但这根本不会影响问题。当我将单元格(标签是表格单元格的一部分)从屏幕中滚动出来并返回时,标签显示正确。哦,我也试过了
[tableView reloadData];
它工作得更好,但如果我选择一个单元格,然后在它高亮显示时滚动,它会在该单元格上弹出
请帮助:(在您的UILabel选项下,取消选中“不透明”,这将修复它。更改不透明不会改变它,尽管这是合乎逻辑的。如果给标签一个精确的高度,您可以做什么。。此高度将匹配您的井高。如果您使用
- (CGFloat)tableView:(UITableView*)tableView行高度索引路径:(NSIndexPath*)索引路径
{ return 80;//返回浮点值,该浮点值将用于指定行索引处的单元格行高度
}
就像我当时做的那样,将标签的高度也设为80,这将阻止它。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];
}
}
UITableViewCell*cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
如果(单元格==nil){
cell=[[[UITableViewCell alloc]initWithFrame:CGRectZero reuseIdentifier:CellIdentifier]autorelease];
}否则{
NSArray*cellSubs=cell.contentView.subview;
对于(int i=0;i<[cellSubs计数];i++){
[[cellSubs objectAtIndex:i]从SuperView中移除];
}
}
希望这能有所帮助。我也遇到了UILabel文本变得混乱的问题,我只是阅读了其他解决方案,转到IB,然后选中“绘图前清除上下文”,这就解决了问题!在我的情况下,将不透明改为无解决了更新UILabel.text的问题 我在awakeFromNib中创建uilabel。检查“清除图形上下文”是否适用于我,我一开始不小心取消了它的选择~~