Peki, bu soruyu göndermeden önce iyi bir göz atmaya başladım, ancak doğru yanıtları bulmakta başarısız oldum. Tüm uygulama senaryosunu gerçekten açıklayamayacağım çünkü açıklamak biraz karmaşık. Öyleyse, bu soruyu çok basit yapalım. UIKeyBoard
.i.e'nin çerçevesini nasıl değiştirebilirim. Görünüm konumumu desteklemek için UIKeyBoard'un 90 derece yukarı veya çevirmesini istiyorum. Benim için bir çıkış yolu var mı?UIKeyBoard çerçevesini iOS'ta nasıl değiştirebilirim?
7
A
cevap
4
Varsayılan klavyeyi değiştiremezsiniz. Bununla birlikte, örneğin bir UITextField üzerinde inputView
olarak ayarlayarak klavye değiştirme olarak kullanılacak özel bir UIView oluşturabilirsiniz.
Özel bir klavye oluştururken biraz zaman alır, eski iOS sürümleriyle iyi çalışır (UITextField üzerindeki inputView
, iOS 3.2 ve sonraki sürümlerde kullanılabilir) ve fiziksel klavyeleri destekler (klavyenin bağlanması durumunda otomatik olarak gizlenir) . Bazı UIViewController özel klavye kullanma
#import "CustomKeyboardView.h"
@implementation CustomKeyboardView
@synthesize innerInputView=_innerInputView;
@synthesize underlayingView=_underlayingView;
- (id)initForUnderlayingView:(UIView*)underlayingView
{
// Init a CustomKeyboardView with the size of the underlying view
// You might want to set an autoresizingMask on the innerInputView.
self = [super initWithFrame:underlayingView.bounds];
if (self)
{
self.underlayingView = underlayingView;
// Create the UIView that will contain the actual keyboard
self.innerInputView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, underlayingView.bounds.size.height)];
// You would need to add your custom buttons to this view; for this example, it's just red
self.innerInputView.backgroundColor = [UIColor redColor];
[self addSubview:self.innerInputView];
}
return self;
}
-(id)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
// A hitTest is executed whenever the user touches this UIView or any of its subviews.
id hitTest = [super hitTest:point withEvent:event];
// Since we want to ignore any clicks on the "transparent" part (this view), we execute another hitTest on the underlying view.
if (hitTest == self)
{
return [self.underlayingView hitTest:point withEvent:nil];
}
return hitTest;
}
@end
:
Arabirim:
#import <UIKit/UIKit.h>
@interface CustomKeyboardView : UIView
@property (nonatomic, strong) UIView *innerInputView;
@property (nonatomic, strong) UIView *underlayingView;
- (id)initForUnderlayingView:(UIView*)underlayingView;
@end
Uygulama İşte
dikey klavye oluşturmak için bazı örnek kod var- (void)viewDidLoad
{
[super viewDidLoad];
CustomKeyboardView *customKeyboard = [[CustomKeyboardView alloc] initForUnderlayingView:self.view];
textField.inputView = customKeyboard;
}
+0
Harika sesler .. Bunu deneyeyim ... BTW +1 :) –
İlgili konular
- 1. Bir hücrenin textLabel çerçevesini nasıl değiştirebilirim?
- 2. iOS iPhone - UIKeyboard yüksekliğinden ÖNCE klavyeWillShow
- 3. Bir UIAlertController'da başlık/mesaj çerçevesini nasıl gizleyebilirim?
- 4. Nasıl Nasıl değiştirebilirim CodeIgniter'da
- 5. veri çerçevesini
- 6. UIkeyboard Ben sadece alfabetik klavye kullanmak istediğiniz tür
- 7. Listenin sınırlarını nasıl değiştirebilirim?
- 8. Python'da saati nasıl değiştirebilirim?
- 9. TVirtualStringTree - [-]/[+] düğmelerini nasıl değiştirebilirim?
- 10. Laravel5 klasörünü nasıl değiştirebilirim?
- 11. Başlangıç sayfasını nasıl değiştirebilirim?
- 12. Başvurumun dilini nasıl değiştirebilirim?
- 13. OrderedDict sırasını nasıl değiştirebilirim?
- 14. kovandaki karakterleri nasıl değiştirebilirim?
- 15. Groovy koleksiyonunu nasıl değiştirebilirim?
- 16. JButton görüntüsünü nasıl değiştirebilirim?
- 17. İki veri çerçevesini birleştirmek
- 18. bağlam dinlenme çerçevesini
- 19. Diyar çerçevesini kullanarak init
- 20. UIKeyboard bildirimleri için en iyi uygulama - iPhone SDK
- 21. Değişken adı verilen veri çerçevesini nasıl gruplandırırsınız?
- 22. Veri çerçevesini pandalarda dizinsiz olarak nasıl aktarırım?
- 23. pandalar veri çerçevesini nasıl sütun klibi oluşturabilirim?
- 24. iOS: UILabel çerçevesini metne göre nasıl ayarlayabilirim?
- 25. Spark: Bir veri çerçevesini üstbilgilerle nasıl kaydederim?
- 26. Django çerçevesini kullanarak istisna
- 27. Uygulamanız 'HealthKitUI' çerçevesini kullanıyor
- 28. UILabel'ım çerçevesini neden değiştiremiyorum?
- 29. Seçilen metin çerçevesini bir UITextView
- 30. Flex'te sonuç nesnelerini nasıl değiştirebilirim?
ios5'de bu şey kullanılabilir. Wwdc2011 dosyasına bakın. – vishiphone
im ios 4.2 ve üzeri tüm aygıtları desteklemesi gerekiyordu :( –
Ama bence bu daha fazla karmaşık Buddy hakkında üzgünüm bilmiyorum – vishiphone