我试图揭示(通过动画)一个 UIView。具体来说,我想显示视图的中心部分,然后慢慢地显示它的外边缘(有点像拉开窗帘)。
我的第一次尝试是简单地将边界矩形设置为更小,并将其设置为视图框架的完整大小,但这并没有达到预期的效果,因为通过更改边界我也改变了框架。
如果我试图做的事情听起来不可能(至少不是以简单的方式),至少我希望能够有某种方法使主视图的子视图相对于屏幕静止,而不是它们的父视图,因为父视图调整大小(这将产生类似的效果)。
有任何想法吗?
谢谢,
-马特
我试图揭示(通过动画)一个 UIView。具体来说,我想显示视图的中心部分,然后慢慢地显示它的外边缘(有点像拉开窗帘)。
我的第一次尝试是简单地将边界矩形设置为更小,并将其设置为视图框架的完整大小,但这并没有达到预期的效果,因为通过更改边界我也改变了框架。
如果我试图做的事情听起来不可能(至少不是以简单的方式),至少我希望能够有某种方法使主视图的子视图相对于屏幕静止,而不是它们的父视图,因为父视图调整大小(这将产生类似的效果)。
有任何想法吗?
谢谢,
-马特
这绝对是可能的。你需要做的是
setAutoresizesSubviews:NO
并且setClipsToBounds:YES
.startBounds.origin.x
应该等于 的一半,endBounds.size.width
同样对于y
。center
(在父视图的坐标系中)。setAutoresizesSubviews:YES
再做一次。您可能还需要将视图的自动调整大小掩码设置为完全灵活(弹簧但没有支柱),具体取决于您调整大小时触发的其他布局。
听起来你想改变它的剪辑。一种廉价(代码方面)的方法是将视图插入父视图(将自动调整大小设置为居中),将父视图设置为剪辑其子视图,然后为父视图设置动画。