Υπάρχουν διαφορές μεταξύ των ιδιοτήτων Frame και Bounds ενός γραφικού στοιχείου;
sobes.tech AI
Απάντηση από AI
Στο iOS, τα γραφικά στοιχεία (UIView) έχουν ιδιότητες frame και bounds που περιγράφουν διαφορετικά πράγματα:
-
frame — είναι ένα ορθογώνιο που περιγράφει τη θέση και το μέγεθος του στοιχείου στις συντεταγμένες της υπερ-θέα (superview). Δηλαδή, το
frame.originείναι η θέση σε σχέση με τον γονέα. -
bounds — είναι ένα ορθογώνιο που περιγράφει τις εσωτερικές συντεταγμένες του ίδιου του στοιχείου. Συνήθως, το
bounds.originείναι (0,0), και το μέγεθος ταιριάζει με το μέγεθος του στοιχείου.
Παράδειγμα:
Αν μετακινείτε το στοιχείο, αλλάζει το frame.origin. Αν αλλάξετε το bounds, π.χ. μετακινώντας το origin του, το περιεχόμενο του στοιχείου θα μετακινηθεί μέσα σε αυτό, αλλά το ίδιο το στοιχείο θα παραμείνει στη θέση του.
Έτσι, το frame είναι υπεύθυνο για τη θέση και το μέγεθος στο σύστημα συντεταγμένων του γονέα, και το bounds για το εσωτερικό σύστημα συντεταγμένων του ίδιου του στοιχείου.