2015-09-01 2 views
0

У меня есть два вида: один создается из конструктора интерфейса, а другой программно создан.sendSubviewToBack не работает для представления, созданного с помощью xib

Что я хочу сделать, это создать программно созданный вид для пересылки. Но xib-created view всегда отображается на первом. В viewDidLoad, я использую sendSubviewToBack: для этого, но, похоже, этот код не работает.

Некоторые могут сказать, что я должен создавать эти представления только по xib (или только по коду). Но я не хочу этого делать.

Есть ли хорошее решение для достижения этого?

Ваши мысли и помощь будут чрезвычайно оценены.

+0

from viewdidload, если вы попытаетесь сделать это, это не сработает. Попробуйте реализовать то же самое в Viewwillappear. Это происходит потому, что только viewcontoller будет загружен в viewdidload. После этого все загрузки будут загружены. –

+0

Создана ли ваша точка зрения в файле xib, правильно связанном с вашим свойством кода? – Maarten

ответ

0

Скорее всего, ваша проблема заключается в том, что вы вызываете sendSubviewToBack: с представлением, которое не является прямым подсмотром приемника.

Методы/bringSubviewToFront: предназначены для непосредственного просмотра в представлении. Так что если вы вид иерархии, как это:

A 
\ 
    B - D 
    | 
    C - E 

(B и C являются подвиды из A; B имеет подвид D, C имеет подвид E)

, то вы можете сделать [A sendSubviewToBack:C], но вы не можем сделать [A sendSubviewToBack:E].

См. also my answer to an old question that might help you.

Смежные вопросы