Ich versuche mein subviews
in einer UIScrollView
Unterklasse anzupassen, aber ich möchte die Scrollindikatoren nicht stören. Es scheint keine öffentliche Schnittstelle zu geben, um auf diese zuzugreifen, und ich möchte überprüfen, ob eine Ansicht einer der Scroll-Indikatoren ist oder nicht (so dass ich sie ignorieren kann).
UIScrollView.h
deklariert diese beiden iVars:
... aber ich habe folgendes versucht und einen Linkerfehler bekommen:
%Vor% Apple will offensichtlich nicht, dass du dich damit herumalbern lässt, in diesem Fall sollten sie etwas cleveres tun, damit das Array von subviews
sie nicht enthält (komm auf Apple, es ist nicht so schwer!), aber bis wie kann ich sie dann ignorieren?
Vermutlich haben Sie die Kontrolle über die Ansichten, die Sie in UIScrollView
eingefügt haben. Warum nicht ein eigenes Array von nur diesen Ansichten beibehalten? So sind Sie sicher vor zukünftigen Änderungen in der Implementierung von UIScrollView.
Ich bin gegen das gleiche Problem und ich fange an, darüber nachzudenken, die Werte dieser beiden UIImageView
s zu betrachten, um herauszufinden, ob sie es sind oder nicht. Sie haben eine ziemlich einzigartige Signatur:
unter anderen Hooks, auf die Sie achten könnten. nicht ideal, aber nicht viel an Optionen zu diesem Zeitpunkt ...
ist ein Beispiel. In diesem Fall habe ich die Teilansichten der Scrollview durchlaufen, um die optimale contentSize
Höhe für die Scrollview basierend auf den Subviews herauszufinden, als sie mit einigen funky Werten aufkam, was mich zu der Annahme brachte, dass Scrollbalken mit Screwing waren ich ...
Wenn das Überprüfen des Rahmens jeder UIView nicht spezifisch genug für Sie ist, können Sie auch sicherstellen, dass es sich um eine UIImageView handelt.
Ich denke, das ist die einzige "wahre" Lösung an diesem Punkt. Ich würde persönlich lieber keine weiteren Ansichten pflegen müssen.
BEARBEITEN:
Hier ist meine konsolidierte Methode, die ich verwende:
%Vor%Werden die Scrollindikatoransichten während der gesamten Lebensdauer der Scroll-Ansicht hinzugefügt oder entfernt, oder werden sie nur einmal hinzugefügt und ausgeblendet und bei Bedarf angezeigt? Wenn es Letzteres ist, könnten Sie Ihre eigenen Referenzen auf sie in Init speichern, anstatt die privaten Ivars zu verwenden und fortzufahren, wie Sie es bereits versucht haben.
Meine Lösung war:
%Vor%Dann habe ich alle Bilder zur MYContentView hinzugefügt und später die MYContentView und
neu skaliert %Vor%Jetzt können Sie alle Bilder in der MYContentView aufzählen, ohne sich um die Bildlaufleisten kümmern zu müssen.
Tun:
%Vor%Nur die Bilder entfernt. Hoffe das hilft
Tags und Links iphone ios ipad uiscrollview uikit