У меня есть UIButton, и я хочу, чтобы он вращался на определенное количество всякий раз, когда я нажимаю его. Если я использую этот код и повернуть его точно 90 градусов против часовой стрелки:Почему моя кнопка исчезает, когда я использую CGAffineTransformRotate?
CGAffineTransform transform = CGAffineTransformRotate(self.transform,
(-M_PI * 2.0) * 0.25);
self.transform = transform;
все работает, как ожидалось (это также работает, если я использую положительное значение и вращайте по часовой стрелке). Если, однако, я пытаюсь повернуть кнопку на 45 градусов:
CGAffineTransform transform = CGAffineTransformRotate(self.transform,
(-M_PI * 2.0) * 0.125);
Моя кнопка просто полностью исчезает. Если да, то:
CGAffineTransform transform = CGAffineTransformRotate(self.transform,
(-M_PI * 2.0) * 0.20);
кнопка странно вытянута, хотя угол кажется правильным.
Я просто хочу повернуть свою кнопку на место, без какого-либо изменения размера, в произвольном уголке, который я хочу - что я делаю неправильно здесь?
Обновление: Это происходит только в том случае, если я пытаюсь переместить/разместить мою кнопку внутри viewDidLayoutSubviews
. Я предполагаю, что это связано с тем, что изменение преобразования приводит к вызову viewDidLayoutSubviews, после чего позиционирование все запутано.
Если я не пытаюсь позиционировать кнопку в представлении ViewDidLayoutSubviews и устанавливаю только маску autoresizingMask при загрузке кнопки, она сохраняет свое правильное положение посередине - если я не поверну ее, изменив преобразование. Это вращение работает и поворачивает кнопку на месте, но как только я поворачиваю устройство на пейзаж и обратно на портрет (иногда, когда я иду в пейзаж), кнопка полностью исчезает.
Этот трюк, похоже, работает только на элемент управления, который никогда не должен двигаться (кроме вращающейся).
Я не могу воспроизвести это. Вы уверены, что у вас нет других преобразований, примененных к кнопке? Вы не можете произвольно повернуть что-то, что было переведено, например. Предоставьте MCVE http://stackoverflow.com/help/mcve. –
@RobNapier: aha, это происходит, если я установил позицию своей кнопки в 'viewDidLayoutSubviews'. Если я не попытаюсь установить его там, вращение работает нормально, как ожидалось. – MusiGenesis