Czy istnieje sposób całkowitego ignorowania ustawień typu dynamicznego/rozmiaru czcionki w aplikacjach na iOS? Chodzi mi o to, że istnieje sposób jak wpis plist, tak, że mogę go całkowicie wyłączyć. Rozumiem, że istnieje powiadomienie, które możemy obserwować i ponownie konfigurować czcionkę, gdy nastąpi zmiana ustawień. Szukam prostszego rozwiązania. Używam iOS8. Dzięki.Ignorowanie typu dynamicznego w systemie iOS: Dostępność
Odpowiedz
W swojej AppDelegate
dodają:
#import <objc/runtime.h>
@implementation AppDelegate
NSString* swizzled_preferredContentSizeCategory(id self, SEL _cmd)
{
return UIContentSizeCategoryLarge; // Set category you prefer, Large being iOS' default.
}
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
Method method = class_getInstanceMethod([UIApplication class], @selector(preferredContentSizeCategory));
method_setImplementation(method, (IMP)swizzled_preferredContentSizeCategory);
...
}
Czy istnieje wersja Swift powyższego kodu? – zeeple
@zeeple Powinien być możliwy. Mam go tylko w Obj-C. Próbowałem szybko przekonwertować na Swift 2.2, ale wymaga to uporządkowania wszelkiego rodzaju typowych problemów związanych z selektorem Swift i typem; nie mają teraz czasu, aby to zrobić. Opublikuj odpowiedź w swojej wersji Swift. –
Plz zamienia kod swift. – Singapore
Szybkie równoważne odpowiedzią @ znaczeń spraw wygląda następująco:
W swojej AppDelegate:
@objc func swizzled_preferredContentSizeCategory() -> UIContentSizeCategory {
return UIContentSizeCategory.small
}
open func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
let originalMethod = class_getInstanceMethod(UIApplication.self, #selector(preferredContentSizeCategory))
let swizzledMethod = class_getInstanceMethod(C24AppDelegate.self, #selector(preferredContentSizeCategory))
method_exchangeImplementations(originalMethod, swizzled_preferredContentSizeCategory)
}
Gdy próbuję użyć tego, otrzymuję błędy kompilatora: 'Użyj nierozwiązanego identyfikatora 'preferredContentSizeCategory''. Czy jest coś jeszcze, co jest potrzebne, aby to zadziałało? –
Moim najlepszym przypuszczeniem była zmiana selektorów na 'getter: UIApplication.preferredContentSizeCategory' oraz' MyAppDelegate.swizzled_preferredContentSizeCategory' wraz z kilkoma innymi zmianami, które wyczyściły błędy kompilatora, ale wydaje się, że nic nie robi po uruchomieniu. –
- 1. Dostępność architektury JavaScriptCore w systemie iOS
- 2. Tworzenie dynamicznego typu w C++
- 3. Wartość domyślna typu dynamicznego?
- 4. Funkcja Duża dostępność tekstu w aplikacji iOS
- 5. NSMetadataQuery ignorowanie niestandardowego typu pliku pliku
- 6. Dostępność dla iOS, VoiceOver czytać zlecenia emisji
- 7. Sprawdzanie typu statycznego i dynamicznego w C++
- 8. Jak sprawdzić dostępność API w Xcode 9
- 9. Programowana zmiana typu klawiatury w systemie iOS nic nie robi
- 10. Przesyłanie do ogólnej listy zmiennych typu dynamicznego
- 11. Krótka dostępność edytora
- 12. Błąd w systemie typu Scala?
- 13. NSURLConnection działa idealnie w systemie iOS 4.3, ale nie w systemie iOS 5/iOS 6
- 14. C++: W jaki sposób można utworzyć szablon dynamicznego typu?
- 15. Jak zaimplementować/użyć typu dynamicznego w materialnym projekcie systemu Android?
- 16. Symbol rupii w systemie iOS
- 17. MKRoadWidthAtZoomScale w systemie iOS 6?
- 18. Stopka statyczna w systemie iOS
- 19. Jak wykryć rzeczywistą dostępność sieci?
- 20. Wyjątek ClassCastException podczas dynamicznego ładowania klasy w systemie Android.
- 21. Namenode wysoka dostępność żądanie klienta
- 22. sprawdź dostępność pokoju w hotelu
- 23. Dostępność w walidacji formularzy javascript
- 24. Jak określić dostępność instancji MemberInfo?
- 25. Włączając bibliotekę statyczną wewnątrz dynamicznego frameworka w iOS
- 26. Ignorowanie podkatalogów w .ackrc
- 27. Ignorowanie argumentów w Control.Applicative
- 28. Dostępność w iOS: głos niestandardowy nad tekstem dla nazwy wyświetlanej paczki
- 29. Okno konserwacji elastiCache Dostępność
- 30. Dostępność śledzenia z Algolia
typ dynamiczny jest coś muszą aktywnie implementować (lub przynajmniej wybierać w Konstruktorze interfejsów). To nie * działa po prostu *. –
Jeśli przejdę i zmieniam rozmiar czcionki w aplikacji ustawień telefonu i wrócę do mojej aplikacji, czcionka zostanie zmieniona. Nic nie zrobiłem. – sole007
Jakiej czcionki używasz w programie Interface Builder? –