2013-09-14 2 views
0

У меня есть UIImageView *userImage и UIImageView *imageSquare размером 320x320. Пользователь сможет сыграть с userImage в состоянии изменить размер & изменить положение. imageSquare является статическим и помещается в середину экрана и должен рассматриваться как вид обрезкиКак обрезать пользователя с масштабированием UIImageView

Код, приведенный ниже, может обрезать userImage как исходный размер imageSquare, но не с его новым соотношением/масштабами.

Я схожу с ума, пытаясь это сделать, но я не могу найти способ. Как я мог обрезать текущий вид (тот, с кем манипулирует пользователем) userImage?

CGSize pageSize = imageSquare.frame.size; 

    UIGraphicsBeginImageContext(pageSize); 

    CGContextRef resizedContext = UIGraphicsGetCurrentContext(); 
    CGContextTranslateCTM(resizedContext, -imageSquare.frame.origin.x, -imageSquare.frame.origin.y); 


    [userImage.layer renderInContext:resizedContext]; 
    image = UIGraphicsGetImageFromCurrentImageContext(); 

    UIGraphicsEndImageContext(); 

    if (image != nil) { 
     NSLog(@"is not nil"); 
     NSData *imgData = UIImagePNGRepresentation(image); 
     imageSquare.image = [[UIImage alloc]initWithData:imgData]; 

    } 

ответ

0

Ваш 320x320 вид обрезки должен быть UIView с clipsToBounds («Клип подвиды» в Interface Builder) установлен в YES, а затем userImage должен быть один из его подвидов.

Когда пользователь изменяет размер/положение, вы меняете userImage.frame, и обрезка будет обрабатываться для вас.

Смежные вопросы