Создайте пользовательский UITableViewCell с UILabel, которым вы можете управлять, как хотите, или обрежьте текст, который вы назначаете для textLabel базового класса, чтобы он соответствовал имеющемуся пространству.
Это не идеально, но я использовал технику усечения текста в местах, где пользовательская ячейка перебивает (например, когда единственная проблема заключалась в подгонке текста), используя категорию NSString с методом, подобным следующему:
- (NSString *)stringByTruncatingToWidth:(CGFloat)width withFont:(UIFont *)font
{
NSString *result = [NSString stringWithString:self];
while ([result sizeWithFont:font].width > width)
{
result = [result stringByReplacingOccurrencesOfString:@"..." withString:[NSString string]];
result = [[result substringToIndex:([result length] - 1)] stringByAppendingString:@"..."];
}
return result;
}
Вероятно, не "оптимизирован", но работает для простых сценариев.