2013-03-11 106 views
0

首先,我想确切地说,似乎有很多关于此主题的问题没有回应。得到这个答案的人应该很少见。启用UIScrollView缩放重置缩放视图转换的缩放

我在UIScrollView子类中设置了一个UIImageView作为放大视图。

- (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是我的变焦规模,但我的旋转变换消失。
我正在寻找一种方法来保持self.imageView上的旋转。

非常感谢您的帮助。

回答

4

它可能听起来有点Hack'ish,但我会尝试做的是将imageView嵌入到将由viewForZoomingInScrollView调用返回的UIView中。

这样,imageView将保留它的旋转变换,而它的超级视图将被放大或缩小。

我倾向于避免在UIKit内部做出什么假设