我在其父视图中添加了UIView
作为子视图。当用户点击此UIView
时,我希望将其转换为整个屏幕。
我试图通过更改其transform
属性来实现此目的,并且我能够使其大小与其父视图匹配,但不能与其位置匹配。
我阅读了Apple文档,发现frame
无法与transform
一起使用。如何使其位置与其父视图对齐?
另外,如果不使用transform
,最好通过更改约束来实现,例如NSLayoutAttributeHeight
?
答案 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,解决方案可能取决于您如何设置约束,例如,如果您设置图像约束如下:
我建议仍然使用比例变换,但将顶部和左侧约束更改为0.
或者你设置了这样的图像约束:
我会将中心对齐x和y更改为超级视图的中心点
也许你可以告诉我你是如何设置约束的,我可以在当地为你做一些测试。