Junior — Middle
Ποια μέθοδοι μπορούν να χρησιμοποιηθούν για να προσδιοριστεί αν ένα στοιχείο View εμφανίζεται στην τρέχουσα οθόνη;
sobes.tech AI
Απάντηση από AI
Για να προσδιορίσετε εάν ένα UIView εμφανίζεται στην οθόνη, μπορείτε να χρησιμοποιήσετε διάφορες προσεγγίσεις:
-
Έλεγχος της ιδιότητας
windowτου UIView. Ανview.window != nil, σημαίνει ότι το view έχει προστεθεί στην ιεραρχία και εμφανίζεται στην οθόνη. -
Έλεγχος της ιδιότητας
isHidden. Ανview.isHidden == false, τότε το view δεν είναι κρυφό. -
Έλεγχος της διασταύρωσης του πλαισίου του view με την ορατή περιοχή της οθόνης, για παράδειγμα, χρησιμοποιώντας τη μέθοδο
convert(_:to:)και συγκρίνοντάς την με τοUIScreen.main.bounds.
Παράδειγμα ελέγχου:
if let window = view.window, !view.isHidden {
let viewFrameInWindow = view.convert(view.bounds, to: window)
if window.bounds.intersects(viewFrameInWindow) {
print("Το view εμφανίζεται στην οθόνη")
}
}
Έτσι, ο συνδυασμός ελέγχων window != nil, isHidden == false και η διασταύρωση με την ορατή περιοχή επιτρέπει τον προσδιορισμό αν το View εμφανίζεται στην τρέχουσα οθόνη.