如何在缩放后将视图位置重置为原点

时间:2013-05-08 09:20:18

标签: ios cocoa-touch ios5 ios6

我的应用中有两个视图,viewA(绿色)和subviewB(红色)。我的应用程序的初始状态如下: enter image description here

我使用以下代码更改viewA的转换:

CGFloat scale = 0.4;
self.viewA.layer.sublayerTransform = CATransform3DMakeScale(scale, scale, 1);

因此,子视图B被缩放和翻译

enter image description here

但是我的应用程序出现了问题:我需要subViewB仍然在viewA的左上角,但是subviewB看起来移动到viewA的中心,这很奇怪,subviewB的原点仍然是(0, 0),我该怎么做才能将subviewB移动到左上角?

2 个答案:

答案 0 :(得分:1)

试试给出的代码,

subviewB.transform = CGAffineTransformScale(test.transform, scale, scale);

它会起作用:))

答案 1 :(得分:0)

我在缩放和自动布局方面遇到了同样的问题但是在uiscrollview中。我最终使用了CATransform3DMakeScale来修复我的所有问题。

https://github.com/hansdesmedt/AutoLayout-scrollview-scale

这是一个UIScrollView的示例,其中自定义分页完全在AutoLayout中进行,并且可以通过长按和轻按来缩放(CATransform3DMakeScale)。 iOS 6和7兼容。