Используя информацию здесь: Приложение-шаблон для iPhone только для ландшафта Я могу запускать, использовать и поддерживать свой вид только в виде ландшафта. Тем не менее, я смущен по поводу оси.
Абсолютная ось ведет себя как ожидалось, означая (0,0) - верхний левый угол, (240,0) - верхний центр, (0,320) - нижний левый угол и т. Д. Однако, когда я пытаюсь выполнить вычисления Относительно вида, на котором я рисую, я нахожу, что x, y ориентированы так, как если бы верхний левый портрет был источником. Итак, чтобы нарисовать что-то в центральной точке моего контроллера вида, мне нужно сделать:
CGPoint center = CGPointMake(self.view.center.y, self.view.center.x);
Я предполагаю, что это из-за того факта, что UIView, на который ссылается мой контроллер self.view, задает свои значения относительно рамки, то есть окно, в котором его начало оси находится слева вверху в портретном режиме.
Есть ли какой-то простой способ объяснить это, что мне не хватает?
Документация предполагает, что свойство transform - это именно то, что я ищу, однако здесь я испытываю дальнейшую путаницу. Есть 3 основных свойства:
Если я сделаю это в viewDidLoad:
// calculate new center point
CGFloat x = self.view.bounds.size.width / 2.0;
CGFloat y = self.view.bounds.size.height / 2.0;
CGPoint center = CGPointMake(y, x);
// set the new center point
self.view.center = center;
// Rotate the view 90 degrees counter clockwise around the new center point.
CGAffineTransform transform = self.view.transform;
transform = CGAffineTransformRotate(transform, -(M_PI / 2.0));
self.view.transform = transform;
Теперь, согласно справочным документам, если преобразование не установлено в качестве идентификатора, преобразование self.view.frame не определено. Поэтому я должен работать с границами и центром.
self.view.center теперь верен, потому что я установил его так, как я хотел.
self.view.bounds отображается без изменений.
Похоже, что self.view.frame - это именно то, что я хочу, но, как отмечалось выше, ссылка утверждает, что она недействительна.
Поэтому, хотя я могу получить, как мне кажется, правильные цифры, я боюсь, что упускаю из виду нечто критическое, что позже станет неприятным.
Спасибо.