Запутался в иерархии просмотра UIKit

#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, поэтому вы можете добавить их в свой вид в качестве подвида.