ios - UIPinchGestureRecognizer扩展UIImageView像Snapchat应用程序

时间:2016-07-06 14:27:08

标签: ios objective-c uipinchgesturerecognizer cgaffinetransformscale

我希望以最小尺寸缩放图像视图,当图像视图的大小约为5 * 5或接近时,图像视图也难以处理。

enter image description here

在Snapchat中,图像(贴纸)在非常小的尺寸上缩小,甚至改变位置和比例也是难以处理的。

我已经实现了Pan Pinch和Rotate手势。并且还使它可以调整大小但不像Snapchat。

我希望得到帮助。非常感谢。

2 个答案:

答案 0 :(得分:1)

我建议编写一个自定义类,扩展UIView,其中包含一个额外的UIImageView。将PinchGestureRecognizer挂钩到UIView,然后使用他们的GestureRecognizers Delgeate Methods来调整UIImageView的大小。这样,触感不会改变。

为了进一步优化它,您可以根据UIImageView的大小初始化UIView,并将其缩小到某个最小值。这样它会感觉更自然。否则,如果你开始“太大”而不是你有一个不同的问题。

答案 1 :(得分:1)

捏合图像时,请应用以下代码

NSData *postData = UIImageJPEGRepresentation(passYourImageHere, (double)(100-[25 doubleValue])/100);
NSInteger imgSizeBytes = [postData length];
double imgSizeKBytes = ceil((double)imgSizeBytes / 1024);

NSString *strBytes;
if(imgSizeKBytes > 1024) {
    double imgSizeMBytes = (double)imgSizeKBytes / 1024;
    strBytes = [NSString stringWithFormat:@"%.1f MB", imgSizeMBytes];
}
else {
    strBytes = [NSString stringWithFormat:@"%d KB", (int)imgSizeKBytes];
}

imgView.image = [UIImage imageWithData:postData scale:0.1];
lblSize.text = [NSString stringWithFormat:@"The shrinked size will be%@", strBytes];