Реализация переключения и действия
Мы практически закончили наше приложение. Осталось только написать код, выполняющий переключение, и запрограммировать реакцию на постукивание по кнопкам. Добавьте код, приведенный ниже, в файл SwapViewController.m.
Первый метод в нашем новом коде называется willAnimateRotationToInterface Orientation:duration:. Именно этот замещенный метод из родительского класса вызывается, когда начинается поворот, но до его завершения. Действия, которые выполняются в данном методе, анимируются как первая часть анимации всего поворота.
В этом методе определяется ориентация, в которой будет находиться телефон после поворота, и задается свойство представления — альбомное или портретное, — подходящее для новой ориентации. Затем мы вызываем метод CGAffineTransformMakeRotation, являющийся частью библиотеки Core Graphics, чтобы создать преобразование поворота (rotation transformation). Преобразование — это математическое описание изменения размеров, положения или угла поворота объекта. Обычно при повороте устройства система iOS задает значение преобразования автоматически. Однако при переключении в новое представление нам необходимо убедиться, что представление будет правильным, чтобы не запутывать операционную систему. Именно это делает метод willAnimateRotationToInterface Orientation:duration: каждый раз, когда задает свойство преобразования представлений. После поворота представления мы уточняем его рамку, чтобы оно точно вписывалось в окно при выбранной ориентации.
Перейдем к методу buttonPressed:. Он не должен содержать ничего удивительного. Мы определяем, по какой кнопке стукнул пользователь, скрываем ее, а затем скрываем соответствующую кнопку в другом представлении.
Все, что написано в этом классе, должно быть вам знакомо. Новый метод shouldAutorotate ToInterfaceOrientation: возвращает значение YES, чтобы сообщить устройству iPhone, что он поддерживает поворот к любой ориентации, а код, добавленный в метод dealloc, просто очищает память.
Теперь скомпилируйте и выполните приложение.
ЗАМЕЧАНИЕ. Если вы случайно щелкнете на обеих кнопках, то единственный способ вернуть их на экран — выйти из симулятора и заново выполнить проект. Не используйте этот подход в своих собственных приложениях.
- Дата: 27-11-2014, 09:14