Ich habe eine Bildlaufansicht mit mehreren Elementen (Beschriftung, Schaltfläche ...), ich muss ein Bild anzeigen, wenn während des Scrollens eine Schaltfläche auf dem Bildschirm erscheint.Objekt auf dem Bildschirm erkennen
Ich kann erkennen, wenn Taste wie diese auf dem Bildschirm erscheint:
func scrollViewDidScroll(scrollView: UIScrollView) {
let offset = self.scrollView.contentOffset
let onScreen = CGRectOffset(self.scrollView.frame, offset.x, offset.y)
if CGRectIntersectsRect(onScreen, self.button.frame) {
...
}
}
Aber ich will alle Tasten bekommen (vielleicht in Array mit Tags), die nach dem Scrollen auf dem Bildschirm angezeigt.
Wie kann ich das tun?
Was Sie tun, wird funktionieren, also, was ist das Problem? Sie können ein Array mit allen Ansichten erstellen, wenn Sie möchten, genau wie Sie gesagt haben. – Dima
Ich füge alle Schaltfläche in Code von http Anfrage. Und ich setze jede Knopfmarke mit irgendeiner Identifikation. Dies ist ID = ID-Bild. Wenn Sie alle Tasten durchgehen, wenn Sie aufhören zu scrollen, wird es sehr lang sein. – Dim
Eine mögliche Optimierung besteht darin, alle Schaltflächen zu einem Array hinzuzufügen, auf das Sie direkt zugreifen können, anstatt nach Tags suchen zu müssen. Sie können die Sichtbarkeit auch etwas schneller überprüfen, indem Sie nur den Rahmenursprung der Schaltflächen mit dem Inhaltsversatz der Bildlaufansicht vergleichen, da Sie sich nicht wirklich um die gesamte Schnittmenge kümmern. Darüber hinaus haben Sie nicht genügend Informationen angegeben, um weitere nützliche Optimierungen vornehmen zu können. – Dima