2014-04-15 31 views
0

我有一個帶有自定義單元格的表格視圖。我正在使用Xcode 5.1和iOS 7.1。我想根據字符串的長度調整UILabel高度,並動態調整單元格的高度以適應標籤。在自定義單元格的iOS 7.1中調整UILabell的大小

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

    cell.titleLabel.lineBreakMode = NSLineBreakByWordWrapping; 
    cell.titleLabel.numberOfLines = 0; 
    [cell.titleLabel sizeToFit]; 

有些人似乎正確地調整大小,有的則沒有。至於細胞的高度,我不能根據標籤的高度來更新它。

+0

看到這個http://stackoverflow.com/questions/19215199/dynamically-size-uitableviewcell-according-to-uilabel-with-paragraph-spacing/19217965#19217965 –

回答

0
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 

    return [self dynamicHeightAtIndexPath:indexPath]+20; 

} 


-(CGFloat)dynamicHeightAtIndexPath:(NSIndexPath *)indexPath 
{ 
    CGSize maximumSize = CGSizeMake(275, 9999); 
    UIFont *myFont = [UIFont fontWithName:@"MyriadPro" size:11]; 
    CGSize stringsize = [[self.array objectAtIndex:indexPath.row] sizeWithFont:myFont 
                 constrainedToSize:maximumSize 
                  lineBreakMode:NSLineBreakByWordWrapping]; 
    return stringsize.height; 

} 
+0

真棒!這對我調整表格視圖單元格非常合適。儘管標籤一直延伸到從左到右的整個過程,但有時文本最終會變成如下形式: 文本 文本文本 文本(一個位於另一個) 而不是:文本文本文本文本(在一行中延伸整個單元格) 或者您單擊單元格,推視圖控制器,然後回來,它應該顯示爲它應該但在您滾動時,您看到一些搞砸了。 – lizbarrett

+0

請提供截圖,如果你可以 –

+0

我已經上傳照片到Dropbox上的文件夾 - https://www.dropbox.com/sh/4016fxw8qfutpoq/jtVwMw8zQs如果你需要更多,請讓我知道。一些字符串似乎正在計算正確,但截斷 - 其他人正在工作,但奇怪地堆疊。 – lizbarrett

0

單元格的高度完全取決於您從tableView:heightForRowAtIndexPath:返回的值。這是一個<UITableViewDelegate>方法。

如果您希望單元格高度爲動態,則需要根據顯示在該索引路徑中的特定字符串在tableView:heightForRowAtIndexPath:中執行計算。

如果您計劃進行大量的滾動操作,則此計算可能會變得非常昂貴並且會導致性能問題。如果是這樣,我建議緩存計算高度或一次計算它們並將它們存儲在與數據源平行的陣列中。

相關問題