启用UIScrollView的缩放重置缩放视图转换

时间:2013-03-11 17:33:25

标签: ios objective-c uiscrollview rotation zooming

首先,我想确切地说,似乎有很多关于这个问题的问题没有回应。得到这个答案的人应该很少见。

我将UIImageView设置为UIScrollView子类中的缩放视图。

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
    return self.imageView;
}

创建self.imageView之后,我在其上应用CGAffineTransform,它的矩阵从以下位置更改:

(CGAffineTransform) $0 = {
  (CGFloat) a = 1
  (CGFloat) b = 0
  (CGFloat) c = 0
  (CGFloat) d = 1
  (CGFloat) tx = 0
  (CGFloat) ty = 0
}

(CGAffineTransform) $2 = {
  (CGFloat) a = 0
  (CGFloat) b = 1
  (CGFloat) c = -1
  (CGFloat) d = 0
  (CGFloat) tx = 0
  (CGFloat) ty = 0
}

在多次调用- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView委托方法后,self.imageView的转换矩阵已更改为:

(CGAffineTransform) $6 = {
  (CGFloat) a = 0
  (CGFloat) b = 1
  (CGFloat) c = -1
  (CGFloat) d = 0
  (CGFloat) tx = 0
  (CGFloat) ty = 0
}

(CGAffineTransform) $7 = {
  (CGFloat) a = 0.130719
  (CGFloat) b = 0
  (CGFloat) c = 0
  (CGFloat) d = 0.130719
  (CGFloat) tx = 0
  (CGFloat) ty = 0
}

正如你所看到的,0.130是我的缩放比例,但我的旋转变换消失了 我正在寻找一种方法来保持旋转自我.imageView。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

这可能听起来有点像Hack'ish但是我想要做的是将imageView嵌入到将由viewForZoomingInScrollView调用返回的UIView中。

这样,imageView将保持它的旋转变换,同时它的超视图将按比例放大或缩小。

我倾向于避免对UIKit内部的内容做出假设