2010-01-26 1 views
1

Я ищу углубленное разбиение/объяснение использования вида iphone. Например, какие контроллеры имеют типы просмотров, как они соотносятся (ребенок <> родительский элемент), как они могут быть вложены, добавлены и удалены и т. Д.Iphone Подробное описание объяснения (View, Superview и т. Д.)

Желательно, чтобы что-то с некоторыми фотографиями было бы неплохо (я визуальный ученик).

Но да, подробные технические объяснения системы просмотра iphone при использовании в IB/Obj-c были бы замечательными.

Кроме того, не стесняйтесь сообщать о своих проблемах или сообщения ресурсам, и я сделаю исследование.

Благодаря

EDIT:

  • Хорошо, я буду более конкретно. Является ли просмотр стеком - это очередь? Как это выглядит, когда я называю addtosubview?

  • Что произойдет, если представление не является полным UIView, но говорит о меньшем контроле UI - будет ли оно видимым?

  • Скажем, у меня есть UIView с UITabView (2 элемента), а один вид содержимого - UITtableView. Что такое родительский вид? Каков порядок детей? Все зависит от того, как я добавляю их в представление? В этом случае элемент управления UITabBar выполняет обработку представлений при выборе кнопки.

  • Когда я вызываю insertSubview, как я могу узнать, какой индекс разместить его?

ответ

4

This will be хорошее место, чтобы начать (перейти отсюда к UIViewController и другие, которые, кажется уместным). UIView может содержать множество подпрограмм любого типа (все они наследуются от UIView). Чтобы вложить точки зрения, вы добавляете subview в супервизор [superview addSubview:subview]. Вы должны также прочитать на Model-View-Controller.

Edit: This SO question might also shed some light on the matter.

Edit редактировать: Best я могу сделать, чтобы ответить на ваши вопросы:

  1. UIViews имеют Ивар подвидов, который является массивом подвидов. Каждый из них также имеет такой массив и может содержать UIViews.

  2. Я предполагаю, что вы имеете в виду не полный экран, как правило, самый верхний вид - это UIWindow, и к этому вы добавляете любой подкласс UIView, который вам нравится, например UISlider.

  3. У вашего UIView есть subview UITabView, я не знаю конкретно, но я бы предположил, что у него есть два подзаголовка, один из которых виден за раз, и один из них - UITableView. Заказ зависит от того, какой заказ вы их добавите, и они будут перекрывать друг друга в зависимости от этого заказа, но его можно изменить с помощью sendSubviewToBack и bringSubviewToFront.

  4. Если вам нужен конкретный порядок просмотра, вам, вероятно, лучше использовать insertSubview:aboveSubview: и эквивалент ниже, а не индекс.

Надеюсь, что-то из этого поможет.

+0

Я знаком с методами (addSubview, removeFromSubview) - и я очень хорошо знаком с MVC. Наверное, мне нужно изменить свой вопрос, чтобы быть более конкретным. –

+0

Я прочитаю первую ссылку, так как я ее раньше не видел. И хе, да, я видел документацию UIView, но я хорошо прочитаю. Меня больше интересует структура за сценой взглядов и то, как они управляются/обрабатываются. –

+0

Извините, я вроде как прочитал, что новый для разработки iPhone. Что вас беспокоит? –

3

Хорошо, я буду более конкретным. Является ли просмотр стеком - это очередь? Как это выглядит, когда я называю addtosubview?

Мне нравится думать об этом как о дереве. Окно является корневым узлом и имеет любое количество подзаголовков. Эти подзадачи могут иметь любое количество своих собственных подзонов, опустившись настолько, насколько это необходимо, чтобы создать полный интерфейс. Методы addSubview и removeFromSubview управляют «детьми» вида.

Что произойдет, если представление не является полным UIView, но говорит о меньшем контроле UI - будет ли оно видимым?

Я понимаю, что все на экране является подклассом UIView, даже UIControl объектов. Поэтому они ведут себя в основном одинаково.

Скажем, у меня есть UIView с UITabView (2 элемента), а один вид содержимого - UITtableView. Что такое родительское представление? Каков порядок детей? Все зависит от того, как я добавляю их в представление? В этом случае элемент управления UITabBar выполняет обработку представлений при выборе кнопки.

Я не уверен: ответ Дэвида содержит больше информации, которая должна помочь.

Когда я вызываю insertSubview, как я могу узнать, какой индекс разместить его?

Я бы не стал беспокоиться об этом: большую часть времени вы просто хотите addSubview, и вам не понравится внутренний заказ.

+0

Прохладный, спасибо за дополнительную информацию (+1). Ценить это. –