iOS - 核心动画 - 如何在转换属性更改时设置原点

时间:2014-02-17 05:41:46

标签: ios iphone uiview core-animation

我在其父视图中添加了UIView作为子视图。当用户点击此UIView时,我希望将其转换为整个屏幕。

我试图通过更改其transform属性来实现此目的,并且我能够使其大小与其父视图匹配,但不能与其位置匹配。

我阅读了Apple文档,发现frame无法与transform一起使用。如何使其位置与其父视图对齐?

另外,如果不使用transform,最好通过更改约束来实现,例如NSLayoutAttributeHeight

1 个答案:

答案 0 :(得分:1)

我认为您可以通过以下方式进行缩放来简单地更改框架:

//i am using 5 for testing purpose
self.backgroundImageView.transform = CGAffineTransformMakeScale(5, 5);

self.backgroundImageView.frame = CGRectMake(0, 0, self.backgroundImageView.frame.size.width, self.backgroundImageView.frame.size.height);

或者在比例尺之前更改锚点:

self.backgroundImageView.layer.anchorPoint = CGPointMake(0.5, 0.5);
self.backgroundImageView.transform = CGAffineTransformMakeScale(5, 5);

<强>更新 如果您在UIView中使用Autolayout,解决方案可能取决于您如何设置约束,例如,如果您设置图像约束如下:

enter image description here

我建议仍然使用比例变换,但将顶部和左侧约束更改为0.

或者你设置了这样的图像约束:

enter image description here

我会将中心对齐x和y更改为超级视图的中心点

也许你可以告诉我你是如何设置约束的,我可以在当地为你做一些测试。