Любой, кто прошел через класс Stanford CS193P в iTunes, узнает это из Назначения 3 (HelloPoly).Для тех, кто не знаком:
У меня есть пользовательское представление polyView, экземпляр PolygonView, подкласс UIView.В этом представлении я использую CGContextDrawLinearGradient для рисования цветового градиента по всему прямоугольному виду.Затем я использую CGContextDrawPath для обводки и заливки многоугольника в границах polyView.И у меня есть UILabel с именем nameLabel в центре представления (и многоугольника), который отображает имя многоугольника (треугольник, четырехугольник, пятиугольник и т. Д.).Все это прекрасно работает, и код для всего этого находится в - (void) метод drawRect класса PolygonView.
Я столкнулся с проблемой с дополнительным требованием вращать многоугольник в представлении.в ответ на жесты пользователя.Я использовал CGAffineTransformRotate () в ответ на события touchesBegan () и touchesMoved () в классе PolygonView, и это тоже в принципе работает.Но я могу вращать только весь PolyView, а не только нарисованный на нем многоугольник.Я уверен, что мог бы вернуться и пересчитать путь многоугольника и перерисовать / заполнить путь в ответ на каждое событие touchesMoved (), но это будет дорого и не может быть лучшим методом.Как я могу использовать CGAffineTransformRotate, чтобы вращать только многоугольник, не поворачивая градиентный вид или метку в центре?
Или есть какой-то способ создать многоугольник на слое, который я могу поместить поверх фонаpolyView под желаемым углом поворота?
Спасибо за любую помощь, вы можете помочь новичку здесь!
Duane