Ich möchte die neue iOS 5-API für die Darstellung nutzen, um allen UINavigationBar-Instanzen in meiner App benutzerdefinierte Hintergrundbilder zu liefern. Um dies zu tun, ist es so einfach:
%Vor% Ich möchte jedoch für jede Instanz ein anderes Bild bereitstellen, abhängig vom Wert der Eigenschaft translucent
, z. B.
Da die Appearance-APIs anscheinend mit Klassenmethoden konfiguriert sind, ist so etwas möglich?
Im Moment gibt es keine Möglichkeit, das zu tun, was Sie beschreiben. Der Erscheinungs-Proxy weiß zu dem Zeitpunkt, zu dem Sie ihn aufrufen, nichts über eine bestimmte Instanz.
In der Praxis müssen Sie wahrscheinlich herausfinden, wie viele durchscheinende Balken Sie v. wie viele nicht durchscheinende haben würden. Wählen Sie das, von dem Sie mehr haben, und verwenden Sie den Darstellungs-Proxy für das andere. Wenn Sie es transparent machen (oder nach einem Vollbild-Layout fragen), müssen Sie das Hintergrundbild dann einstellen.
Können Sie in der Zwischenzeit unter Ссылка eine Verbesserungsanfrage einreichen, um was Sie bitten? Es ist keine unangemessene Bitte. Danke!
Sie können es entweder global mit dem Proxy für die Klassendarstellung festlegen oder für eine Instanz einer navBar festlegen.
Ich setze gerade Hintergrund für eine Instanz der Navigationsleiste und es scheint zu funktionieren. Ich habe zwei verschiedene navBars mit unterschiedlichen Hintergründen. Wenn Sie es für eine Instanz festlegen, sollten Sie in der Lage sein, den Code zu konditionieren.
%Vor%Wenn Sie mit der Klassenmethode festlegen möchten, können Sie für alle festlegen:
%Vor%Ich gebe jedoch zu, dass es ziemlich neu ist und ich finde es nur heraus wie die meisten Leute.
Diese Antwort wird Ihnen wahrscheinlich nicht viel helfen, aber vielleicht auch anderen. Wenn Sie eine Unterklasse erstellen, können Sie die Darstellung für jede Unterklasse separat angeben. Zum Beispiel habe ich UITableviewCells und eine benutzerdefinierte Klasse, die von UITableViewCells abgeleitet ist. Ich tue das eigentlich aus einem Grund, aber ich entdeckte, dass ich [[UITableViewCells Aussehen] setFont: [...]] für beide Klassen spezifisch aufrufen muss.
Da Sie anscheinend auf der Grundlage einer Variablen arbeiten möchten, die Sie bis zur Laufzeit nicht kennen, haben Sie wahrscheinlich kein Glück!
Tags und Links objective-c ios uinavigationbar ios5 appearance