2017-02-13 79 views
0

嗨,在我的應用程序中,我有一個要求在tablview中顯示帶有描述的prodcuts。爲了實現這個,我在tablview單元格內容視圖中添加了兩個satckviews。兩個stackviews都有標籤,一個標籤有一個產品名稱,另一個標籤有說明。在應用程序啓動時,應用程序單元格高度默認爲100,但是當我選擇單元格時,我希望在單元格中顯示完整的說明以及產品名稱,我的意思是需要更改單元格高度。可以請任何人讓我幫助我如何實現此目的。如何動態改變細胞高度。請幫幫我。動態更改tableview單元格高度ios

我嘗試了下面的方法,它顯示了堆棧視圖標籤中的更多描述,但單元格高度沒有變化。所以無法看到完整的描述。使用約束爲您的應用

cell.productDescription.numberOfLines=50; 
cell.productDescription.lineBreakMode=NSLineBreakByCharWrapping; 
+0

檢查這個答案http://stackoverflow.com/questions/ 41439786/aligning-multiple-runtime-generated-uilabels-in-a-uitableview/41440763#41440763如果您需要以編程方式執行此操作,或者使用自行調整大小的tableView單元格 –

+0

@Naresh G希望單元格單擊或當您的表格視圖加載它會自動調整其單元格高度? –

+0

您可以將numberOfLines更改爲0,以刪除任何最大限​​制,並根據需要使用盡可能多的行。 –

回答

0

使用UITableViewDelegate方法

#pragma mark - UITableViewDelegate 
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
1

的最佳方式。所以你不必管理heighforCell。如果你要編碼部分,那麼你必須找出文本的高度,然後你需要設置heightForRowAtIndexPath方法。

下面是代碼從字符串得到高度:

-(float)getHeightForText : (NSString *)strText 
{ 
    UILabel *lbl = [[UILabel alloc] init]; 
    CGRect rect; 
    rect.origin = CGPointZero; 
    float width = YOUR_LABEL_WIDHT 
    rect.size = CGSizeMake(width, 3000); 
    lbl.font = MESSAGE_TEXT_FONT; 
    lbl.frame = rect; 
    lbl.text = strText; 
    lbl.numberOfLines = 1000; 
    [lbl sizeToFit]; 

    float height = lbl.frame.size.height; 
    return height; 
} 

寫下面的代碼在你的heightForRowAtIndexPath方法:

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return [self getHeightForText:YOUR_TEXT]; 
} 
相關問題