То, что вы видите, совершенно правильно. Вы добавляете 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 не будет определять, какие представления будут видны. Только если вид сверху имеет рамку, которая закрывает нижнюю, вид снизу будет скрыт. Из фотографий, которые вы разместили, кажется, что рамка кнопок достаточно велика, чтобы показать текст, и не занимает весь кадр окна