我使用 UITableViewController 的子类。在此表中,我使用带有 style 的标准单元格UITableViewCellStyleDefault
。此样式包含一个textLabel
. 我将一些文本分配给它的文本属性,然后我需要文本的长度(以磅为单位):
cell = [tableView dequeueReusableCellWithIdentifier:@"CellID"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellID"];
}
cell.textLabel.text = @"some text";
textWidth = [cell.textLabel.text sizeWithFont:cell.textLabel.font].width;
NSLog(@"text width = %f",textWidth);
NSLog(@"Font = '%@'",cell.textLabel.font);
但是当我执行这段代码时,它返回的宽度为 0.00000:
text width = 0.000000
Font = '<UICFFont: 0x68b4a90> font-family: "Helvetica"; font-weight: bold; font-style: normal; font-size: 0px'
我必须做什么才能获得此文本的实际宽度(通常显示且宽度不为 0)
编辑:
当我插入一行代码时if (cell.font){}
,我得到正确的大小和宽度:
cell = [tableView dequeueReusableCellWithIdentifier:@"CellID"];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellID"];
}
cell.textLabel.text = @"some text";
// added line:
if (cell.font){}
textWidth = [cell.textLabel.text sizeWithFont:cell.textLabel.font].width;
NSLog(@"text width = %f",textWidth);
NSLog(@"Font = '%@'",cell.textLabel.font);
显示这个:
text width = 98.000000
Font = '<UICFFont: 0x68dc400> font-family: "Helvetica"; font-weight: bold; font-style: normal; font-size: 20px'
但是不推荐使用单元格的吸气剂“字体”。是否有不推荐使用的方法来获取字体大小/文本宽度?