#ios #uiview #uikit #hierarchy #uiwindow
#iOS #uiview #uikit #иерархия #uiwindow
Вопрос:
Я немного смущен необычным представлением иерархии, присутствующим в UIWindow.
Если кто-либо ссылается на ссылку Apple UIKit для UIWindow, то UIView является суперклассом для UIWindow
NSObject-> UIResponder-> UIView-> UIWindow.
Но когда кто-то создает новый проект в XCode, появляется один MainWindows.xib, и он содержит остальные представления в проекте.Это означает, что UIWindow является суперклассом для UIView.Итак, UIWindow является дочерним, а также родительским для UIView.Это очень сбивает с толку любого.
Итак, у кого-нибудь может быть четкое представление, связанное с этим.
Комментарии:
1. ‘Parent’ — перегруженный термин. Когда речь идет о наследовании, родительский класс — это то же самое, что и суперкласс, поэтому
UIView
является родительским классом или суперклассомUIWindow
. Когда речь идет об агрегации или композиции, родительский класс — это тот, экземпляры которого содержат другие экземпляры, например представление (или окно), содержащее другие представления. В Cocoa номенклатурой для этого является superview (представление, которое содержит другие представления) и subview (представление, которое содержится в другом представлении). Оба определения ортогональны, независимы друг от друга.
Ответ №1:
Не путайте иерархии наследования с иерархиями представлений.
Экземпляр UIView может иметь много вложенных представлений типа UIView, поэтому UIWindow является UIView и поэтому может содержать другие UIViews в качестве вложенных представлений.
Посмотрите на все другие компоненты пользовательского интерфейса, такие как UIButton или UILabel, все они наследуются от UIView, поэтому вы можете добавить их в свой вид в качестве подвида.