Проблемы с поворотом изображения в Iphone - PullRequest
0 голосов
/ 16 марта 2012

Я хочу повернуть изображение (вращение влево и вправо) на угол 90. Я использую следующий код, он поворачивает изображение влево на угол 360. Как я могу повернуть изображение на угол 90.

-(IBAction)btnLeftRotateClicked:(id)sender
{


    CATransform3D rotationTransform = CATransform3DMakeRotation(1.0f * M_PI, 0, 0, 1.0);

    CABasicAnimation* rotationAnimation;
    rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform"];

    rotationAnimation.toValue = [NSValue valueWithCATransform3D:rotationTransform];
    rotationAnimation.duration = 0.25f;
    rotationAnimation.cumulative = YES;
    rotationAnimation.repeatCount = 1; 

    [imageAdjustView.layer addAnimation:rotationAnimation forKey:@"rotationAnimation"];

}

Спасибо.

Ответы [ 4 ]

1 голос
/ 16 марта 2012

Почему бы вам не использовать affineTransform, если вы просто хотите повернуть изображение в 2D

CGAffineTransformMakeRotation(-M_PI * 0.5);
0 голосов
/ 16 марта 2012

Поворот на 360 градусов равен нет Вращение. Думаю, ты имеешь в виду 180 = PI. Таким образом, 90 градусов = .5 * PI.

0 голосов
/ 16 марта 2012

Если вы хотите использовать простое падение классов, которые вращают UIImage, а также масштабируют его, попробуйте посмотреть: http://bit.ly/w3r5t6 это категория UIImage с именем WBImage

0 голосов
/ 16 марта 2012

@ MSB:

Думаю, эта ссылка поможет вам.

Как повернуть UIImage на 90 градусов?

Какпрограммно повернуть изображение на 90 градусов в iPhone?

Вы можете обратиться к этому ответу по fbrereto по приведенной выше ссылке

Как насчет чего-то вроде:

static inline double radians (double degrees) {return degrees * M_PI/180;}
UIImage* rotate(UIImage* src, UIImageOrientation orientation)
{
    UIGraphicsBeginImageContext(src.size);

    CGContextRef context = UIGraphicsGetCurrentContext();

    if (orientation == UIImageOrientationRight) {
        CGContextRotateCTM (context, radians(90));
    } else if (orientation == UIImageOrientationLeft) {
        CGContextRotateCTM (context, radians(-90));
    } else if (orientation == UIImageOrientationDown) {
        // NOTHING
    } else if (orientation == UIImageOrientationUp) {
        CGContextRotateCTM (context, radians(90));
    }

    [src drawAtPoint:CGPointMake(0, 0)];

    return UIGraphicsGetImageFromCurrentImageContext();
}

РЕДАКТИРОВАТЬ: Вы можете сослаться на ответ, данный Sabobin по ссылке Как программно повернуть изображение на 90 градусов в iPhone? .Я опубликовал тот же код, чтобы вы могли ссылаться на него здесь:

UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"my_image.png"]];

//set point of rotation
myImageView.center = CGPointMake(100.0, 100.0);

//rotate rect
myImageView.transform = CGAffineTransformMakeRotation(3.14159265/2);

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...