当我使用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/