当我使用UITableViewCellStyleValue1时,我得到了一长串的textLabel,并且不知何故,detailTextLabel从 View 中推出了。

当我缩短textLabel文本时,可以看到detailTextLabel的文本。

无论如何,是否以上述样式限制了textLabel的宽度,以至于过长会截断textLabel?

我的代码是:

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

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];

}

cell.textLabel.lineBreakMode = UILineBreakModeTailTruncation;

//---get the letter in each section; e.g., A, B, C, etc.---
NSString *alphabet = [self.currencyNameIndex objectAtIndex:[indexPath section]];

//---get all states beginning with the letter---
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@", alphabet];
self.currencyList = [self.keyCurrencyName filteredArrayUsingPredicate:predicate];

if ([self.currencyList count] > 0)
{
    NSString *currencyName = [self.keyCurrencyName objectAtIndex:indexPath.row];
    cell.textLabel.text = currencyName;

    NSString *currencyCode = [self.valueCurrencyCode objectAtIndex:indexPath.row];
    cell.detailTextLabel.text = currencyCode;

}

return cell;
}

所以我的货币名称在某些条目上会很长。

最佳答案

使用UILabel lineBreakMode属性将文本限制在UILabel的宽度内

@property(nonatomic) UILineBreakMode lineBreakMode

如下使用。
myLabel.lineBreakMode = UILineBreakModeTailTruncation;

这是可以与lineBreakMode一起使用的值的列表。

http://developer.apple.com/library/ios/#documentation/uikit/reference/NSString_UIKit_Additions/Reference/Reference.html#//apple_ref/doc/c_ref/UILineBreakMode

编辑:

根据您的要求设置UILabel的宽度

例如。
myLabel.frame.size.width = 320;

关于iphone - uitableviewcell textlabel太长,将detailtextlabel推出 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5745908/

10-11 13:03