2013-07-14 66 views
0

我想在UITableViewCell中放置一個按鈕,該按鈕的工作方式如下: 當我點擊按鈕時,單元格應該顯示單元格的全部內容,否則只顯示其部分內容。完整內容顯示後,UITableViewCell的高度將會更高。基本上它應該看起來像iOS應用更新中的風格。我怎樣才能做到這一點?在點擊一個按鈕時調整UITableViewCell的大小

我已經試過

[tableView beginUpdates]; 
[tableView endUpdates]; 

但這只是改變細胞的大小,並把內容在小區的中間。我希望單元格中最初可見的部分保持不變,只在單元格高度變高後才顯示更多內容。自定義的UITableViewCell

我的init方法:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     self.backgroundColor = [UIColor clearColor]; 

     self.opaque = NO; 
     self.textLabel.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin; 
     self.detailTextLabel.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin; 
    } 
    return self; 
} 

回答

0

嘗試設置你的UITableViewCell子視圖的autoResizingMask達到預期的效果。

UIViewAutoresizingFlexibleBottomMargin將保持固定在頂部的視圖。

UIViewAutoresizingFlexibleTopMargin將保持一個視圖固定在底部。

UIViewAutoresizingNone將保持它不居中。

UIViewAutoresizingFlexibleHeight將使視圖在您的細胞更改高度時拉長/縮短。

對於每個子視圖,找出你想如何表現並相應地設置值。

+0

我把這個放到我的單元格的init方法中,沒有任何效果。 – newguy

+0

請將您的代碼發佈到您的問題的編輯中。 – jaredsinclair

1

如果要更改表格視圖單元格的高度,它不僅需要更改表格視圖單元格,而且還需要表格視圖爲其分配的空間量。從tableView:heightForRowAtIndexPath:返回所需的大小並重新加載該行(例如:通過reloadRowsAtIndexPaths:withRowAnimation :)。

相關問題