2016-07-20 38 views
6

Başlık olarak, UITableViewCell içinde bir UITextField var. Benim tableView Bir dizide ürün I düğmesine dokunun yeni bir giriş ekleme ve yeni hücrede animasyon ediyorum tallies: [String]UITableViewCell'deki UITextField UZAKTAN SONRAKİFRALıYICI Sonlandırıcı, ekleme sonrasında

denilen listeler

. rowAnimation tamamlandığında, titleTextField için becomeFirstResponder olmasını istiyorum, ancak şu ana kadar çalışmaz.

yeni bir satır mükemmel olarak canlılar, ancak titleTextField İşte çalıştığım buydu değil becomeFirstResponder

olacaktır:

CATransaction.begin() 
CATransaction.setCompletionBlock { 
    let cell = self.tableView(self.tableView, cellForRowAtIndexPath: self.editingIndexPath!) as! TallyCell 
    cell.titleTextField.hidden = false 
    cell.titleTextField.becomeFirstResponder() 
} 

tableView.beginUpdates() 
tallies.append("Example") 
tableView.insertRowsAtIndexPaths([editingIndexPath!], withRowAnimation: .Left) 
tableView.endUpdates() 

CATransaction.commit() 

cevap

0

Yap textField ilk yanıtlayıcısını satır takıldıktan sonra.

+0

Maalesef bu kodu deneyin, bunu ben – Leon

+0

sonra doğrudan ararsanız satır animasyonu durdurmak CTTransaction çıkarın ve [tableView insertRowsAtIndexPaths böyle bir şey yapmak gibi görünüyor belirtti olmalıydı: @ [indexPath] withRowAnimation: UITableViewRowAnimationLeft]; [cell.textLabel becomeFirstResponder]; – jagdish

+1

Bunu da denedim. hayır şans – Leon

0

CATransaction.begin() 
CATransaction.setCompletionBlock { 
    let cell = self.tableView(self.tableView, cellForRowAtIndexPath: self.editingIndexPath!) as! TallyCell 
    cell.titleTextField.hidden = false 
} 

tableView.beginUpdates() 
tallies.append("Example") 
tableView.insertRowsAtIndexPaths([editingIndexPath!], withRowAnimation: .Left) 
tableView.endUpdates() 
CATransaction.commit() 
let cellNew = self.tableView(self.tableView, cellForRowAtIndexPath:self.editingIndexPath!) as! TallyCell 
cellNew.titleTextField.becomeFirstResponder() 
+0

Bu işe yaramaz, 'hücre' – Leon

+0

bloğu içinde tanımlanmıştır, ancak CATransaction.commit() –

+0

kontrolünü düzenledikten sonra yapmanız gerekir –