超视图转换时防止子视图转换

时间:2013-03-23 01:48:25

标签: iphone ios cocoa-touch uiview cgaffinetransform

我有以下设置。我有UIView名为parentView,其中包含名为UIView的{​​{1}}。 childView可以使用一些需要在parentView上的触摸手势来旋转和调整大小。 parentView在其drawRect方法中有一些绘图代码,需要在childView转换时进行更新。

我注意到,当我转换parentView(缩放或旋转)时,parentView也会自动转换。问题是,虽然我确实希望在childView上启动旋转变换,但我不希望它是缩放,我宁愿执行它的绘图代码。

所以我的问题是,处理这种情况的好方法是什么?我注意到在childView转换后我setNeedsDisplay上的“childView”,它不会被执行。

2 个答案:

答案 0 :(得分:2)

不要转换父视图;改变子视图的兄弟。

换句话说,您当前的设置如下所示:

transformedView
    childView

相反,这样做:

parentView
    transformedView
    childView

这种转变不会影响孩子。

答案 1 :(得分:1)

我必须将轮播应用于parentView,然后设置parentViewchildView的bounds属性以调整其大小。然后,我能够成功重绘childView中的drawRect。虽然我认为如果你在childs superview上设置一个转换,我认为你不得不在它的子视图中使用它。我试着单独设置变换,变换的所有时间都被搞砸了。布伦特的上述情况也可能在某些情况下派上用场。