UITableview ve UITextView ile bir uygulamam var, bu nedenle bazen klavye doldu. Klavye her açıldığında, her zaman klavyenin arkasına sıkışmış olduklarından alt 3-4 tablo hücrelerine erişemiyorum. Klavye görüntülendiğinde UITableView uygulamasını yalnızca klavyenin üstündeki alanı nasıl alabilirim?UITableview'ın alt kısmının klavyeyle yukarı çıkmasını sağlayın
8
A
cevap
10
Ama elle
Kullanım tablo görünümlerini setContentOffset
veya scrollToRowAtIndexPath
CGPoint scrollPt = CGPointMake(textFieldRect.origin.x, textFieldRect.origin.y);
[_tableView setContentOffset:scrollPt animated:YES];
UITableViewCell *cell = (UITableViewCell*) [[textField superview] superview];
[_tableView scrollToRowAtIndexPath:[_tableView indexPathForCell:cell] atScrollPosition:UITableViewScrollPositionTop animated:YES];
1
bu deneyin: Aynı şey ama değişim
CGRect frame = [tableViewer frame]; //assuming tableViewer is your tableview
frame.size.height -= 200; //200 may be a bit off, should be height of keyboard
[tableViewer setFrame:frame];
Ve - = ila + = klavye kaybolduğunda için. Bazı kodlama yapmak istiyorsanız Normalde otomatik normal sorunu çözecektir https://github.com/michaeltyson/TPKeyboardAvoiding kullanmak
4
Ben aynı sorunu yaşadım ve işte benim çözümüm. Umarım yardımcı olur.
- (void) keyboardWillShow: (NSNotification*) aNotification
{
[UIView animateWithDuration: [self keyboardAnimationDurationForNotification: aNotification] animations:^{
CGSize kbSize = [[[aNotification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
//change the frame of your talbleiview via kbsize.height
} completion:^(BOOL finished) {
}];
}
- (void) keyboardDidShow: (NSNotification*) aNotification
{
[UIView animateWithDuration: [self keyboardAnimationDurationForNotification: aNotification] animations:^{
CGSize kbSize = [[[aNotification userInfo] objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
//change the frame of your talbleiview via kbsize.height
} completion:^(BOOL finished) {
}];
}
- (void) keyboardWillDisappear: (NSNotification*) aNotification
{
[UIView animateWithDuration: [self keyboardAnimationDurationForNotification: aNotification] animations:^{
//restore your tableview
} completion:^(BOOL finished) {
}];
}
- (NSTimeInterval) keyboardAnimationDurationForNotification:(NSNotification*)notification
{
NSDictionary* info = [notification userInfo];
NSValue* value = [info objectForKey: UIKeyboardAnimationDurationUserInfoKey];
NSTimeInterval duration = 0;
[value getValue: &duration];
return duration;
}
Olay dinleyicilerini ekleyin ve kaldırın. Bir klavye animasyonu sırasında çoklu olayların alınacağını düşünün.
+0
Neden hem "keyboardWillShow" hem de "keyboardDidShow" öğesine ihtiyacınız var? –
İlgili konular
- 1. Bir Aktörün çıkmasını bekleyin()
- 2. Arka plan resmi tarayıcı penceresi eksi üstbilgisi ve alt katın alt kısmının üstünü kaplaması
- 3. vba: Zaman String kısmının yerine
- 4. R'de çalışan kodu klavyeyle nasıl kesebilirim?
- 5. iPhone - resmin ekrana sığmasını sağlayın
- 6. Android'de metin süzgeci sağlayın
- 7. Raylar: Kayıtların yerleştirilmesini sağlayın
- 8. Öğelerin hareket etmesini sağlayın
- 9. UITableView, altbilginin ekranın altında kalmasını sağlayın.
- 10. Dosya adının bir kısmının mv ile kaldırılması
- 11. Çekme piton modülü yukarı
- 12. Yazılım klavyesinin nasıl ortaya çıkmasını önleyebilirim?
- 13. Konsolun Eclipse'de otomatik olarak çıkmasını nasıl engellersiniz
- 14. Doxygen korumalı elemanların çıkmasını önlemek mümkün mü?
- 15. Emacs'ın (Cocoa OSX), arabelleğin alt kısmının üst kısmına gidip vurarak ses çıkarmasını nasıl durdurabilirim?
- 16. ArrayPool nesnesini JsonOutputFormatter yapıcısına sağlayın
- 17. Laravel Lumen JSON yanıtını sağlayın
- 18. Belirli ızgara konumlarına gridster.js fayans yapışmasını sağlayın (ızgaraya tutun)
- 19. Bootstrap Affix Nav Nedenler Yukarı Git Yukarı Gitmek İçin
- 20. Doğru temiz yukarı kodu
- 21. (aşağı yakalama/yukarı ok)
- 22. LinearLayout yukarı kaydır
- 23. Actionbar Yukarı Düğme Dinleyici
- 24. BITMAPS neden "yukarı" yüklenir?
- 25. Ekran cevap yukarı
- 26. jQuery .parent() yukarı
- 27. "Yukarı" tuşu nasıl kullanılır?
- 28. Ayarlar faaliyeti yukarı düğmesi
- 29. Bir alt işlemi çalıştırın, Java'da doğru bir şekilde giriş ve çıkış sağlayın
- 30. Perl regex'in hangi kısmının bir dizeyle eşleştirildiğini nasıl bilebilirim?
Bu benim durumumda işe yarayan tek şey - Teşekkürler! tek soru - klavye açıldığında, "açık animasyon" ile siyah bir arka plan var. –
Masaüstüne nasıl siyah bir arka plan kaldırabilirim/değiştirebilirim? – Lugubrious
Tablo görünümüne değil, sadece klavyenin hareket ettiği "dikdörtgen" e –