Путаница со значением индекса insertSubView - PullRequest
0 голосов
/ 21 января 2012

Я понимаю, что insertSubView вставит новое представление в некоторый индекс иерархии View приложения iPhone.

Я также понимаю, что

insertSubView atIndex: [[self.view subviews]count]

вставит подвид в самый верх, чтобы он был единственным видимым видом.Это похоже на addSubview.

Тем не менее, я все еще новичок, и я немного запутался с тем, что включено в "View".

У меня есть корневой контроллер, ипо его мнению, на нем 3 кнопки.

root view

Я поигрался с addSubView, чтобы понять, как он работает, и когда я сделал insertSubview при Index: 1, я получилследующее:

index 1

Похоже, что новый вид, который я добавил, был добавлен после кнопки 1, но перед кнопкой 2 и кнопкой 3. Если я изменю индекс на 2, тоотображается только кнопка 3, поэтому создается впечатление, что новый вид размещается после кнопок 1 и 2, но перед 3.

Почему это так?Почему у кнопок есть отдельные индексы подпредставления?Я бы подумал, что все, что содержится в представлении моего корневого контроллера, попадет под одно представление.Они как-то разделены?

1 Ответ

1 голос
/ 21 января 2012

То, что вы видите, совершенно правильно. Вы добавляете button1, затем button2, а затем button3. Таким образом, стек просмотра будет:

button3 -> индекс 2
button2 -> индекс 1
button1 -> index 0.

Теперь, если вы сделаете: insertSubview: atIndex: 1, вы получите:

button3 -> индекс 3
button2 -> индекс 2
AnotherView -> индекс 1
button1 -> index 0.

так что видны только button2 и button3, потому что button1 скрыт, потому что "AnotherView" перекрывает его фрейм.


Аналогично, если вы делаете: insertSubview: atIndex: 2, вы получаете:

button3 -> индекс 3
AnotherView -> index 2
button2 -> индекс 1
button1 -> index 0.

теперь только button3 видна, потому что и button1, и button2 скрыты, потому что «AnotherView» перекрывает их кадр.

Еще одна вещь, которую вы должны учитывать, заключается в том, что один только z-index не будет определять, какие представления будут видны. Только если вид сверху имеет рамку, которая закрывает нижнюю, вид снизу будет скрыт. Из фотографий, которые вы разместили, кажется, что рамка кнопок достаточно велика, чтобы показать текст, и не занимает весь кадр окна

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...