сделать UIView больше, чем его родительский вид

Я делаю приложение для iPad, и у меня есть следующая структура UIView:


ViewA (родительский) --> ViewB (подпредставление для ViewA) --> ViewC (подпредставление для ViewB)

ViewA имеет тот же размер, что и экран.
ViewB составляет примерно половину размера экрана.
ViewC вдвое меньше, чем ViewB.

После определенного события я хочу изменить кадр ViewC, чтобы ViewC покрывал весь экран. Как лучше всего это сделать? Я бы предпочел, чтобы кадр ViewC не выходил за пределы ViewB (и я не могу изменить кадр ViewB).

Спасибо!

Солнечно


person Wise Shepherd    schedule 08.09.2011    source источник


Ответы (1)


На мой взгляд, вид B больше не актуален, если вид C будет занимать весь экран. Возможно ли/безопасно удалить подвид C из B в вашем дизайне?

Если это так, то удалите C из B, а затем добавьте его как подпредставление к A. Вы даже можете сделать это с анимацией, используя статический метод transitionWithView:duration:options:animations:completion: из UIView.

person Can    schedule 08.09.2011
comment
Мне нужно сохранить ViewB. Я сделал это проще, чем кажется. На самом деле есть несколько промежуточных представлений между моим ViewA, который покрывает весь экран, и моим ViewB, который является подвидом на несколько представлений ниже ViewA. Так что было бы много работы, чтобы удалить все промежуточные представления... - person Wise Shepherd; 08.09.2011
comment
Затем добавьте промежуточное представление с именем ViewBC, которое может содержать либо B, либо C в полноэкранном режиме в качестве подвида и правильно размещать его внутри A. Также обратите внимание, что вы можете поменять порядок подвидов (sendSubviewToBack:, bringSubviewToFront:, ...). Или просто стисните зубы и разверните B за пределы C, убедитесь, что clipsToBounds НЕТ (по умолчанию). - person Can; 08.09.2011