2014-01-08 87 views
0

大家好,我需要在tableView单元格中插入一些文本。但我不知道如何改变线条空间。所以它看起来很丑。因为每条线都太近了。请帮帮我。非常感谢!如何更改TableViewCell中的行空间

//texts 
UITextView *hisText = [[UITextView alloc] init]; 
hisText.frame = CGRectMake(100, 110, 600, 300); 
[hisText setFont:[UIFont fontWithName:@"HelveticaNeue" size:14]]; 
hisText.textColor = [UIColor blackColor]; 
hisText.editable = NO; 

switch (indexPath.row) { 
    case 0: 
     hisText.text = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda."; 
     hisImg.image = [UIImage imageNamed:@"1928-1.jpg"]; 
     [cell.contentView addSubview:hisText]; 
     //[cell.contentView addSubview:hisImg]; 
     break; 
    case 1: 
     hisText.text = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda."; 
     [cell.contentView addSubview:hisText]; 
     break; 
    default: 
     break; 
} 
+0

可以你给截屏 – chandru

回答

1

如果你的所有文字将适合在您创建的UITextView帧的长度,那么你可以简单地做这heightForRowAtIndexPath的默认值:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
     return 110; //you can set to whatever height you wish if you want some 'padding' 
} 

然而,要做到这一点,使其适合文本的任何长度的一个正确的方法是建立在heightForRow中的UITableView和大小得当,以适应(可能使用sizeToFit)和文本,然后把它的的tableView .frame.size.height并返回tableView行高的值。

喜欢的东西:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UITextView *hisText = [[UITextView alloc] init]; 
    hisText.frame = CGRectMake(100, 110, 600, 300); 
    [hisText setFont:[UIFont fontWithName:@"HelveticaNeue" size:14]]; 

    switch (indexPath.row) { 
    case 0: 
     hisText.text = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda."; 
     [hisText sizeToFit]; 
     break; 
    case 1: 
     hisText.text = @"Lorem ipsum dolor sit er elit lamet, consectetaur cillium adipisicing pecu, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Nam liber te conscient to factor tum poen legum odioque civiuda."; 
     [hisText sizeToFit]; 
     break; 
    default: 
     break; 
    } 

    float theHeight = hisText.frame.size.height; 

    return theHeight; 

} 
+0

非常感谢,但是当我尝试“返回hisText.frame.size.height”时,它显示“从不兼容的结果类型的函数'返回'CGFloat'(又名'float')'UITableView' *“, – smallgood

+0

编辑了上面的代码。试试看。加上float theHeight = – JustAnotherCoder

+0

好的,谢谢,我会试试看 – smallgood

0

1)而不是UITextView采取UILabel和按文本的大小调整UILabel的框架。

现在,如果你想要的行空间增加UILabel的框架根据您的要求,它会给你的线之间的空间。

2)或采取UIWebeview而不是UITextView,并且可以根据HTML主体提供行空间。

+0

非常感谢。但如果我使用UILabel而不是UITextView。我在tableview单元格中有很多单词,我需要花费大量的时间来做到这一点。 T.T.我不知道如何在tableview单元格中使用UIWebView。 – smallgood

+0

将您想要的内容写入HTML文件中。然后在UIWebView中加载HTML文件。与应用所有的要求,如空间,字体,颜色等 – Madhu

+1

好的。我尝试了另一种方式,它的工作原理,下面的代码:NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init]; paragraphStyle.lineHeightMultiple = 10.0f; paragraphStyle.maximumLineHeight = 20.0f; paragraphStyle.minimumLineHeight = 20.0f; NSString * string = @“.....”; NSDictionary * ats = @ { NSParagraphStyleAttributeName:paragraphStyle, }; hisText.attributedText = [[NSAttributedString alloc] initWithString:string attributes:ats]; – smallgood

0

U可以增加行的高度。

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
return [indexPath row]+110; 
} 

这里,[indexPath行] - 有rowHeight的

+0

非常感谢,现在我知道如何改变行的高度,但我不知道如何修改行之间的行间距。 – smallgood

+0

这不是用途 – smallgood

相关问题