Я не уверен на 100% в этом, но я думаю, что вы не правы в том, что CATransition применяется к экрану целом . Это относится к представлению, к которому вы добавляете анимацию.
Идея состоит в том, что вы применяете переход к родительскому элементу представления, который вы действительно хотите перейти. Допустим, у вас есть следующая структура.
- UIViewController
- просмотр (основной вид UIViewController)
- просмотр, который вы переходите
Что вам нужно сделать, это добавить представление «удержание» или «контейнер» между основным представлением UIViewController и вашим фактическим целевым представлением, чтобы оно выглядело так:
- UIViewController
- вид (основной вид UIViewController)
- представление "контейнер"
Примените ваш переход к представлению контейнера, и вы сможете его обрезать, если хотите. Если он все еще выходит за границы, попробуйте включить clipsToBounds для содержащего представления или свойство masksToBounds слоя