2013-07-12 59 views
1

我有一個UiTableView,它在視圖上顯示文本,但我不希望它顯示一定量的單詞後的三個點。我怎樣才能做到這一點?如何在我的UITableView上不顯示「...」?

編輯

謝謝大家的幫助,我想它了。

通過故事板,我只是將換行符模式從截尾改爲換行,我認爲Clip也可以。

+0

http://stackoverflow.com/questions/9827126/change-the-uitableviewcell-height-according-to-amount -of-text你可以檢查這...在tableview單元格文本中創建標籤 – Anjaneyulu

回答

1

IF文字很長,截斷然後用lineBreakMode NSLineBreakByWordWrapping代替NSLineBreakByTruncatingTail

i.e cell.textTitle.lineBreakMode = NSLineBreakByWordWrapping 
+0

謝謝Divya,你給了我正確的想法,我通過故事板將「換行」模式從「截尾」改爲「換行」。 –

0

這意味着文本太長而且會被截斷。您可以調整行高以充分顯示文字,也可以使用較短的文字。

1

請嘗試以下代碼:

#define FONT_SIZE 14.0f 
    #define CELL_CONTENT_WIDTH 300.0f 
    #define CELL_CONTENT_MARGIN 3.0f 



- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return 1; 
} 


- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath; 
{ 
    NSString *text = [ObjectsArr objectAtIndex:indexPath.row]; 
    CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f); 
    CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap]; 
    CGFloat height = MAX(size.height, 44.0f); 
    return height + (CELL_CONTENT_MARGIN * 2); 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return [ObjectsArr count]; 
} 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    UILabel *label = nil; 
    static NSString *CellIdentifier = @"Cell"; 
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (!cell) { 
     cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease]; 
     label = [[UILabel alloc] initWithFrame:CGRectZero]; 

      [label setLineBreakMode:UILineBreakModeWordWrap]; 
      [label setMinimumFontSize:FONT_SIZE]; 
      [label setNumberOfLines:0]; 
      [label setFont:[UIFont systemFontOfSize:FONT_SIZE]]; 
      [label setTag:1]; 
      [[cell contentView] addSubview:label]; 
    } 

     NSString *text = [ObjectsArr objectAtIndex:indexPath.section]; 

     CGSize constraint = CGSizeMake(CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), 20000.0f); 
     CGSize size = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap]; 
     if (!label) 
      label = (UILabel*)[cell viewWithTag:1]; 

     [label setText:text]; 
     [label setFrame:CGRectMake(CELL_CONTENT_MARGIN, CELL_CONTENT_MARGIN, CELL_CONTENT_WIDTH - (CELL_CONTENT_MARGIN * 2), MAX(size.height, 44.0f))]; 


    return cell; 
} 

我們如果您遇到任何疑難,我知道。 謝謝。

+0

你能編輯答案並解釋爲什麼這段代碼應該有所幫助嗎?上面的代碼 – herzbube

+0

對於基於我們必須在UITableviewCell上顯示的內容的動態單元大小非常有用。 – sagarcool89