Iphone 限制UITableView单元格中字符的长度
我必须限制UITableView单元格文本的字符数或长度。因为每个单元格显示一个很长的文本,我必须将这些文本限制为例如140个字符。因为它会导致慢滚动和内存问题等 我正在从SQL DB加载单元格文本:Iphone 限制UITableView单元格中字符的长度,iphone,objective-c,Iphone,Objective C,我必须限制UITableView单元格文本的字符数或长度。因为每个单元格显示一个很长的文本,我必须将这些文本限制为例如140个字符。因为它会导致慢滚动和内存问题等 我正在从SQL DB加载单元格文本: appClass = (AppDelegate *)[[UIApplication sharedApplication] delegate]; readerClass = (Reader *)[appClass.wordList objectAtIndex:indexPath.ro
appClass = (AppDelegate *)[[UIApplication sharedApplication] delegate];
readerClass = (Reader *)[appClass.wordList objectAtIndex:indexPath.row];
cell.textLabel.text=readerClass.Name;
谢谢。诸如此类:
NSRange stringRange = {0, MIN([readerClass.Name length], 140)};
cell.textLabel.text = [readerClass.Name substringWithRange:stringRange];
大概是这样的:
NSRange stringRange = {0, MIN([readerClass.Name length], 140)};
cell.textLabel.text = [readerClass.Name substringWithRange:stringRange];
使用:
当readerClass.Name少于140个字符时,将设置其完整名称;如果readerClass.Name较长,将设置其前140个字符
另外,我假设您在UITableViewCell中有一个UILabel,它会自动附加。。。文本被截断时的省略号。如果没有,您可以自己添加省略号:
cell.textLabel.text = (readerClass.Name.length > 140 ? [[readerClass.Name substringToIndex:137] stringByAppendingString:@"..."] : readerClass.Name);
就在这个问题的附加部分,因为您只问了第一行:
// get first line break range
NSRange rangeOfFirstLineBreak = [cell.textLabel.text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]];
// check if first line break range was found
if (rangeOfFirstLineBreak.location == NSNotFound) {
// if it was, extract the first line only and update the cell text
cell.textLabel.text = [cell.textLabel.text substringToIndex:rangeOfFirstLineBreak.location];
}
使用:
当readerClass.Name少于140个字符时,将设置其完整名称;如果readerClass.Name较长,将设置其前140个字符
另外,我假设您在UITableViewCell中有一个UILabel,它会自动附加。。。文本被截断时的省略号。如果没有,您可以自己添加省略号:
cell.textLabel.text = (readerClass.Name.length > 140 ? [[readerClass.Name substringToIndex:137] stringByAppendingString:@"..."] : readerClass.Name);
就在这个问题的附加部分,因为您只问了第一行:
// get first line break range
NSRange rangeOfFirstLineBreak = [cell.textLabel.text rangeOfCharacterFromSet:[NSCharacterSet newlineCharacterSet]];
// check if first line break range was found
if (rangeOfFirstLineBreak.location == NSNotFound) {
// if it was, extract the first line only and update the cell text
cell.textLabel.text = [cell.textLabel.text substringToIndex:rangeOfFirstLineBreak.location];
}
这应该行得通。它还添加了“…”
NSString *name = readerClass.Name;
if( name.length > 140 ){
name = [place substringToIndex:140];
name = [NSString stringWithFormat:@"%@...", name];
}
cell.textLabel.text= name;
这应该行得通。它还添加了“…”
NSString *name = readerClass.Name;
if( name.length > 140 ){
name = [place substringToIndex:140];
name = [NSString stringWithFormat:@"%@...", name];
}
cell.textLabel.text= name;
你能详细说明一下吗?为什么不能用你的绳子做一个简单的if。长度不能工作?你能详细说明吗?为什么不能用你的绳子做一个简单的if。长度不行?很高兴能帮上忙!顺便说一句,别忘了选择答案,这对我们的销售代表很有帮助:是的,我在答案中添加了一些示例代码。在这种情况下,我鼓励你问一个单独的问题,这样其他发现这个问题的人就不会感到困惑了。它应该是rangeOfFirstLineBreak.location!=找不到。很高兴能帮上忙!顺便说一句,别忘了选择答案,这对我们的销售代表很有帮助:是的,我在答案中添加了一些示例代码。在这种情况下,我鼓励你问一个单独的问题,这样其他发现这个问题的人就不会感到困惑了。它应该是rangeOfFirstLineBreak.location!=没有找到。