CATransition, как обрезать границы UIView? - PullRequest
6 голосов
/ 09 июля 2010

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

1 Ответ

1 голос
/ 08 марта 2013

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

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

  • UIViewController
    • просмотр (основной вид UIViewController)
      • просмотр, который вы переходите

Что вам нужно сделать, это добавить представление «удержание» или «контейнер» между основным представлением UIViewController и вашим фактическим целевым представлением, чтобы оно выглядело так:

  • UIViewController
    • вид (основной вид UIViewController)
      • представление "контейнер"
        • просмотр вы переходите

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

...