1

我有一個UITableViewCell爲什麼從自定義單元格調用時UIkeyboard不會動畫?

一個子類,當用戶觸摸一個細胞,我稱之爲重載,就像這樣:

[_tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade]; 

// This is where magic happens... 
[_tableView beginUpdates]; 
[_tableView endUpdates]; 

和一個新的單元中,在顯示出來。這種新的細胞變成爲_workName的UITextField的第一個響應者,這樣的:

@implementation TWMainViewPlusExpandedCell 

- (void) awakeFromNib 
{   
    [_workName becomeFirstResponder]; 

} 

鍵盤顯示出來,但沒有動畫。這是瞬間!似乎沒有任何動畫!

但是,當我辭職鍵盤時,通過調用resignFirstResponder,它按照預期辭去動畫。

我在這裏錯過了什麼嗎?

謝謝!

回答

2

我認爲你的單元格變成了響應者,並且在重載引起的tableview動畫之前或期間調出鍵盤。 嘗試

- (void) awakeFromNib 
{   
    [_workName performSelector:@selector(becomeFirstResponder) onThread:[NSThread getMainThread] withObject:nil withDelay:0.1]; 

} 

我問你爲什麼重裝表只是選擇一個單元格。

+0

我正在實現表格,因爲觸摸使得新的單元格出現在舊的單元格的位置。這是錯誤的方法? – nmdias

+0

我按照你的建議延遲了,並且修正了一些事情。沒有更好的方法來做到這一點?在較舊的iPhone上,如果執行需要多一點時間,則動畫會癱瘓。 – nmdias

+0

問題是,正如你所看到的,你依賴於不能確定的時間。延遲是一種解決方法。如果你得到你想要的結果,爲什麼要花更多的時間。 –

相關問題