2012-07-26 62 views
0

我正在處理該項目。目前我正面臨一個問題,我在一個ViewController中有3個UITableView。它看起來是這樣的:

enter image description here調整UITableView的大小

現在,第一個TableView中(上一個),只有一個排,具有大小55個像素,它不;噸必須改變大小。接下來,第二個是TableView,也是一行,但這行必須調整大小取決於它的內容。眼下這個TableView中顯示此行:

enter image description here

這行必須調整大小取決於它的文本多久。我所做的計算大小是:

if(tableView == self.usersPostOnTheWallTableView) { 
    NSDictionary *propertyItems = [self.repliesItems objectAtIndex:indexPath.row]; 

    NSString *text = [self.postItems objectForKey:@"text"]; 

    NSLog(@"%@", text); 

    CGSize constraintSize = CGSizeMake(280, MAXFLOAT); 

    CGSize sizeText = [text sizeWithFont:[UIFont systemFontOfSize:FONT_SIZE] constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap]; 

    self.height = MAX(sizeText.height, 44.0f); 

    self.photosArray = [propertyItems objectForKey:@"attach_photos"]; 
    self.videosArray = [propertyItems objectForKey:@"attach_videos"]; 

    if((self.photosArray.count == 0) && (self.videosArray.count == 0)) { 

     height += (CELL_CONTENT_MARGIN * 2); 

    } else if ((self.videosArray.count > 0) && (self.photosArray.count == 0)) { 

     height += 90 + (CELL_CONTENT_MARGIN * 2); 

    } else if((self.photosArray.count > 0) && (self.videosArray.count == 0)) { 

     height += 85 + (CELL_CONTENT_MARGIN * 2); 
    } 

} 

現在,如果文本很小,它適合行很好,行是調整大小。像這樣的:

enter image description here

但是,短信來了更大的後,這是什麼發生的事情:

enter image description here

enter image description here

很顯然,我不需要在那裏的滾動和我會禁用它。但是這裏的事情是它需要文本的大小,並且它調整了標籤的大小,你可以看到從標籤的頂部和底部有多少空間。但它並沒有把實際的文字放在那裏。另一件事是,它沒有調整自己的TableView的大小,當我試圖調整它的大小時,我得到了中間表的底部表的重疊。

任何人都可以推薦任何解決方案,或者可能是另一種實現方式嗎?

在此先感謝!

+0

爲什麼你在第一個和第二個視圖中使用UITableView?第一個只是一個按鈕,看起來像一個表格行,第二個只是一個文本視圖,那麼爲什麼你的生活複雜化? :-) – lawicko 2012-07-26 09:08:21

+0

第二個我需要顯示一行,因爲還會有圖像和視頻。 – 2012-07-26 09:09:17

+0

視頻和圖片仍然沒有成爲一張桌子。對於脫離主題感到抱歉,但當設計看起來如此之差時,我無法專注於技術細節。 – lawicko 2012-07-26 09:11:37

回答

1

U可以做到這一點是使用tableviewDelegate方法根據您的文字是這樣,例如設置單元格高度:

這個方法將被調用每一個細胞,以決定應該有多少細胞具有高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *strDetails = [yourTextArray objectAtIndex:indexPath.row]; 
    //if(indexPath.row == 1) 
    //{ 
    CGSize stringSize = [strDetails sizeWithFont:[UIFont fontWithName:@"Marker Felt" size:13] constrainedToSize:CGSizeMake(320, 9999) lineBreakMode:UILineBreakModeWordWrap]; // Provide text as well as font name in which your text will be displayed and constrainedToSize which defines width and height it should be maximum 
    return stringSize.height+65; //Here 65 can be any value depending on Calculation ImageView height + uppermost space + bottom space added 
    //} 
    //else 
    //{ 
    // return 80 // anything u wishes 
    //} 
} 
相關問題