Czy istnieje sposób na zmianę położenia UITextField wewnątrz UISearchBar? Chciałbym przenieść UITextField wewnątrz UISearchBar trochę.Jak mogę zmienić pozycję UITextField w UISearchBar?
Odpowiedz
Podejście UITextField przestało działać, prawdopodobnie z powodu restylacji obiektu UISearchBar. UISearchBar zmienia rozmiar swojego UITextField, gdy jest prezentowany na ekranie, to unieważnia wszystkie manipulacje na UITextField.
Jednak odkryłem, że UISearchBar reaguje na metodę setContentInset:
(testowaną na iOS 5.0.1). Koryguje odległość wstawki od otaczającego widoku.
Wynik w zaawansowanych podejście obejmujące NSInvocation:
if([aSearchBar respondsToSelector:@selector(setContentInset:)])
{
SEL aSelector = NSSelectorFromString(@"setContentInset:");
NSInvocation *inv = [NSInvocation invocationWithMethodSignature:[aSearchBar methodSignatureForSelector:aSelector]];
[inv setSelector:aSelector];
[inv setTarget:aSearchBar];
UIEdgeInsets anInsets = UIEdgeInsetsMake(5, 0, 5, 35);
[inv setArgument:&anInsets atIndex:2]; //arguments 0 and 1 are self and _cmd respectively, automatically set by NSInvocation
[inv invoke];
}
Powyższy kod przeskalowanie contentInset
z UISearchBar (w praktyce UITextField) stosując CGRect wskazany w parametrze anInsets
. Nadrzędna instrukcja if (respondsToSelector:
) ratuje się przed zmianami tego zachowania w nowych wersjach systemu iOS.
Aktualizacja dla Swift3 i iOS10:
if searchBar.responds(to: Selector("setContentInset:")) {
let aSelector = Selector("setContentInset:")
let anInset = UIEdgeInsetsMake(5, 0, 5, 35)
searchBar.perform(aSelector, with: anInset)
}
Działa jak urok. Na przykład, aby mieć trochę miejsca w lewo i prawo, użyj powyższego z: 'UIEdgeInsets anInsets = UIEdgeInsetsMake (5, 50/* left * /, 5, 50/* right * /);' – ecotax
Znalazłem, że jeśli opuścisz górne i dolne wypustki jako 0, stosuje domyślną wstawkę. Ustaw jako 5, ale stało się, gdy wybrałem pole tekstowe, które spowodowało jego przesunięcie na górę paska wyszukiwania. – Jonah
Czy ten kod odrzuci twoją aplikację z AppStore? Poza tym, rzeczywiście działa jak urok. –
- 1. zrobić UITextField funkcjonować jak UISearchBar
- 2. UITextField vs UISearchBar?
- 3. Jak zmienić pozycję lub ukryć ikonę lupy w UISearchBar w IOS 7?
- 4. Dostosuj UITextfield z UISearchbar - iOS
- 5. Jak zmienić pozycję grid.draw
- 6. jak zmienić pozycję submorficzną
- 7. Tekst zastępczy niewłaściwie wyrównany w UITextField z UISearchBar
- 8. Jak zmienić pozycję spisu treści w rStowndown?
- 9. Jak zmienić pozycję punktów PageViewController w Swift?
- 10. Jak zmienić pozycję grafografu Graphviz?
- 11. Jak mogę programowo wymusić wyszukiwanie w UISearchBar?
- 12. UITextField Ustaw kursor, aby rozpocząć pozycję tekstową
- 13. Jak zmienić pozycję Toasta w systemie Android?
- 14. Jak zmienić pozycję tekstu w JTextArea
- 15. Programowo zmienić UITextField typ klawiatury
- 16. Czy można zmienić wyrównanie elementu zastępczego UISearchBar?
- 17. Jak zmienić pozycję strzałki strzałki NSPopower?
- 18. Proste i brzydkie - Jak zmienić pozycję div?
- 19. jak zmienić kolor tła pola UISearchBar i kolor tekstu w ios8
- 20. jak zmienić pozycję znaku negatywnego css
- 21. Przycisk wyszukiwania klawiatury UISearchbar Działanie
- 22. Jak zmienić pozycję asp.net ajax ValidatorCalloutExtender
- 23. Jak zmienić pozycję tła przy animacji css3?
- 24. Jak zmienić pozycję jquery ui datepicker?
- 25. Jak mogę zapisać pozycję GMSCameraPosition?
- 26. Jak zmienić kolor tekstu przycisku anulowania przycisku UISearchbar?
- 27. Jak zmienić pozycję elementu za pomocą jQuery
- 28. Jak zmienić pozycję okna dialogowego postępu?
- 29. Dlaczego muszę zmienić pozycję źródła wiązania, zanim mogę zapisać zmiany
- 30. Jak mogę odznaczyć pozycję w ListView?
Chyba trzeba zaimplementować własną pasek wyszukiwania. – Legolas