Próbuję utworzyć niestandardową klawiaturę dla UITextField, tło tego inputView powinno być przezroczyste, ustawiłem kolor tła w pliku Xib widoku na "clear color". Działa świetnie na iOS 6 i wcześniej .. ale na iOS 7 nie działa Każdy pomysł, jak mogę to sprawić? Chcę, aby był w pełni przezroczysty.Wejście UITextViewView na iOS 7
Odpowiedz
Grywam ten sam problem, ponieważ mam klawiaturę numeryczną, która wypełnia tylko lewą połowę ekranu w trybie poziomym (i jest zasadniczo bezużyteczna na iOS7, gdzie efekt rozmycia pokrywa całe szerokość ekranu). I nie dość zorientowali się, jak dostać to, co chcę (niewyraźne tło tylko za moją rzeczywistą inputView), ale zorientowali się, jak wyłączyć rozmycie całkowicie:
- zdefiniować niestandardowy podklasy UIView i określić, że w pliku XIB
w tej klasie override willMoveToSuperview następująco:
- (void)willMoveToSuperview:(UIView *)newSuperview { if (UIDevice.currentDevice.systemVersion.floatValue >= 7 && newSuperview != nil) { CALayer *layer = newSuperview.layer; NSArray *subls = layer.sublayers; CALayer *blurLayer = [subls objectAtIndex:0]; [blurLayer setOpacity:0]; } }
To wydaje się wpływać na tle każdej zwyczaju inputView mam (ale nie klawiatura System), dzięki czemu może ne ed, aby zapisać/przywrócić dowolną normalną wartość krycia, gdy twój inputView zostanie usunięty z podglądu, jeśli tego nie chcesz.
Spowoduje to ustawienie nieprzezroczystości tła na zero podczas wyświetlania niestandardowej klawiatury i przywrócenie go do wartości 1 po wyświetleniu normalnej klawiatury.
+ (void)updateKeyboardBackground {
UIView *peripheralHostView = [[[[[UIApplication sharedApplication] windows] lastObject] subviews] lastObject];
UIView *backdropView;
CustomKeyboard *customKeyboard;
if ([peripheralHostView isKindOfClass:NSClassFromString(@"UIPeripheralHostView")]) {
for (UIView *view in [peripheralHostView subviews]) {
if ([view isKindOfClass:[CustomKeyboard class]]) {
customKeyboard = (CustomKeyboard *)view;
} else if ([view isKindOfClass:NSClassFromString(@"UIKBInputBackdropView")]) {
backdropView = view;
}
}
}
if (customKeyboard && backdropView) {
[[backdropView layer] setOpacity:0];
} else if (backdropView) {
[[backdropView layer] setOpacity:1];
}
}
+ (void)keyboardWillShow {
[self performSelector:@selector(updateKeyboardBackground) withObject:nil afterDelay:0];
}
+ (void)load {
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(keyboardWillShow) name:UIKeyboardWillShowNotification object:nil];
}
iOS 7 robi pewne rzeczy pod maską, które nie są udokumentowane. Można jednak sprawdzić hierarchię widoków i dostosować odpowiednie widoki, przesłoniwszy opcję -willMoveToSuperview w niestandardowym widoku wejściowym. Na przykład ten kod sprawi, że tło stanie się przezroczyste:
- (void)willMoveToSuperview:(UIView *)newSuperview {
NSLog(@"will move to superview of class: %@ with sibling views: %@", [newSuperview class], newSuperview.subviews);
if ([newSuperview isKindOfClass:NSClassFromString(@"UIPeripheralHostView")]) {
UIView* aSiblingView;
for (aSiblingView in newSuperview.subviews) {
if ([aSiblingView isKindOfClass:NSClassFromString(@"UIKBInputBackdropView")]) {
aSiblingView.alpha = 0.0;
}
}
}
}
- 1. UITextView contentOffset na iOS 7
- 2. MFMessageComposeViewController znacznie wolniej na iOS 7
- 3. UIBarButtonItem nie jest płaski na iOS 7
- 4. UITableViewCell systemLayoutSizeFittingSize: wracając 0 na iOS 7
- 5. Ocena SKStoreProductViewController wyłączona na iOS 7
- 6. inny system Średnia czcionka na iOS 7
- 7. UIImagePickerController na iOS 7: Tryb kwadratowy?
- 8. UIPanGestureRecognizer czasami nie działa na iOS 7
- 9. Awaria UIImagePickerController tylko na iOS 7 - iPad
- 10. Mikrofon nie działa na iOS 7
- 11. iOS 7 AVPlayer AVPlayerItem trwania niepoprawny w iOS 7
- 12. wejście Android/iOS koncentruje kiedy stukając na stronie ciała
- 13. iOS 7 - region.center przestarzałe
- 14. iOS 7 - brak dostępnych urządzeń ios
- 15. XCode 6.0.1 ios 7 Autolayout
- 16. ios 7 bottomLayoutGuide with uitabbarcontroller
- 17. iOS 7 - UIPopoverController: przestarzałe strzały?
- 18. iOS 7 UISearchDisplayController Trzaskanie animacji
- 19. iOS 7 UITabBar odznaka pozycja
- 20. Nazwy plików ikon iOS 7
- 21. iOS 7 alternatywa dla CTCall?
- 22. Poziome separator NavBar IOS 7
- 23. iOS 7: insertItemsAtIndexPaths: przewija UICollectionView
- 24. Dekompresja obrazu w iOS 7
- 25. Wejście vs: Wejście w jQuery
- 26. Wejście liniowe VBA vs Wejście
- 27. Importowanie Alamofire w projekcie kierowanym na iOS 7
- 28. Wymagane zachowanieFullScreenLayout z nieprzezroczystymi paskami na iOS 7
- 29. Najlepszy sposób na sprawdzenie systemu iOS 7 lub wcześniejszego?