当我用滑块更改图像的大小时,图像会移动

时间:2013-11-08 17:18:14

标签: ios objective-c uiimageview uislider

我有一个可以在屏幕上拖动的图像视图,我添加了一个滑块来更改图像视图大小并且它可以工作,但是当我改变大小时,图像视图总是返回到原始位置,并且它不再在我拖的地方,有什么不对的?这是我改变大小的代码

- (IBAction)sizePhoto:(UISlider *)sender {
[_imagen1 setTransform:CGAffineTransformMakeScale(sender.value, sender.value)];}

这就是我拖动图片的方式

CGPoint translation = [recognizer translationInView:_photo];

recognizer.view.center = CGPointMake(recognizer.view.center.x + translation.x,
                                     recognizer.view.center.y + translation.y);
[recognizer setTranslation:CGPointMake(0, 0) inView:_photo];

这就是我旋转图像的方式

recognizer.view.transform = CGAffineTransformRotate(recognizer.view.transform, recognizer.rotation);
recognizer.rotation = 0;

2 个答案:

答案 0 :(得分:0)

这个想法是将当前变换与变化结合起来,因此它保留了用户已经完成的工作。您可以在旋转时正确执行此操作。用比例做同样的事情:

_imagen1.transform = CGAffineTransformScale(_imagen1.transform, scaleFactor, scaleFactor);

答案 1 :(得分:0)

// pass your slider value: below code


 CGFloat scale = slider.value;
 CGAffineTransform theTransform = CGAffineTransformMakeScale(scale, scale);
  myImageView.transform = theTransform;