2010-07-09 2 views
6

Я использую CATransition для слайд-просмотра в UIView. Но проблема в том, что CAT-переход всегда появляется на экране всего экрана. И это похоже на беспорядок, потому что у меня есть другие элементы пользовательского интерфейса в окне, которые перекрываются при переходе. Как я могу ограничить рамку перехода фреймом UIView? Я попытался установить clipToBounds моего UIView в YES. На самом деле это не помогает.CATransition, как закрепить в пределах UIView?

+0

Вы когда-нибудь это выясняли? –

ответ

1

Я на самом деле не уверен на 100%, но я думаю, что вы ошибаетесь в отношении CATransition, применяемого к экрану всего экрана. Это относится к представлению, к которому вы добавляете анимацию.

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

  • UIViewController
    • вид (основной вид UIViewController)
      • вид вы перешли

Что вам нужно сделать, это добавить " холдинг "или" контейнер "между основным UIViewController вид и фактическая целевой точки зрения, таким образом, что это выглядит следующим образом:

  • UIViewController
    • вид (основной вид UIViewController)
      • "контейнер" вид < - Применить переход здесь
        • вид вы переезжаете

Примените переход к просмотру контейнера и вы сможете закрепить его, если вы хотите. Если он по-прежнему выходит за границы, попробуйте включить клипсы для просмотра на содержащем представлении или свойства maskToBounds слоя

+0

Исправлена ​​ошибка в обеих учетных записях: 'UIView', к которому вы применяете переход, должен быть обрезан с помощью супервизора, используя' clipsToBounds' – SwiftArchitect