在不改变子视图的情况下对UIView进行CGaffine变换

时间:2012-06-12 04:33:11

标签: objective-c ios cocoa-touch transformation cgaffinetransform

我有一个uiimageview的子类,其中有一个按钮作为子视图。我添加了捏合手势以在uiimageview上应用缩放仿射变换,但是我不希望按钮(子视图)也被缩放。无论如何要从转换中排除按钮?据我所知,转换会相应地转换视图内的所有内容及其所有子视图。

3 个答案:

答案 0 :(得分:2)

攻击它的一种方法是向UIView添加一个类别,以便在将转换*的逆应用于所有子视图时将转换应用于self。

* CGAffineTransformInvert会做你想要的。

答案 1 :(得分:1)

更改视图的视图层次,而不是让buttons作为uiimageview的子项,创建父UIView并添加UIImageView和{{1} } 您的新层次结构将是这样的

UIButton

UIButton将是UIImageView的兄弟,而不是它的孩子,现在你可以应用UIView -> UIImageView -> UIButton 的任何转换,它不会影响UIImageView

答案 2 :(得分:1)

将转换应用于视图层

view.layer.transform = ...