2012-03-28 22 views
3

我在問這個問題已經知道答案是「不,你不能」,但希望有人在這裏我們有一個好主意。如何使UITableView行隨用戶修改的內容動態增長

我有一個UITableViewCell的子類,它有幾個不同的子視圖,女巫是一個UITextField,我作爲用戶可編輯。自然,textField隨着輸入的文本而增長。

現在的問題是我怎麼能得到tableview行與textField增長。

我有各種不同大小的單元格,所以我知道如何使用- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath但問題是我需要修改單元格已經在tableview中之後。

還要注意的是,前面提到的委託方法獲取數據源委託方法- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

我已經想到了剛剛拉起另一個視圖爲用戶進行編輯,然後將這些數據轉化爲我的數據模型,那麼我會調用之前必須強制tableview重新加載。 (我可以重新加載一個特定的單元格/行)

有趣的是,我覺得蘋果在iTunes U應用程序中做我想做的事情。當您點擊任務時,它將展開。我認爲他們正在使用右側的桌面視圖?

我知道我在這裏有很多問題和談論,但我相信這些都是相關的,只是爲了展示我所研究的內容。我只是在尋找你們中間有一位天才的可能性。

希望這可以幫助別人也因爲這似乎是一個熱門話題,但沒有人問這個問題,或得到很好的答案。

回答

5

實際上,這個問題已經被多次詢問和回答 - 這不是不可能的。搜索「UITableView自定義行高」或「UITableView多行UITextField」或類似的,你會發現幾個很好回答的問題。

你走在正確的軌道上 - 即使在創建/配置單元之前調用該方法,也需要返回高度tableView:heightForRowAtIndexPath:。這沒關係......你只需要一種方法來計算該高度而不需要單元格。其他答案參考-[NSString sizeWithFont:constrainedToSize:]和相關的方法......這應該讓你在正確的軌道上。

更改,而文本字段編輯的高度是不太明顯,但this answer有鑰匙......如果你調用

[tableView beginUpdates]; 
[tableView endUpdates]; 

表視圖,不僅再次要求其委託heightForRowAtIndexPath:和調整細胞匹配,它會用平滑的動畫來完成。

相關問題