水平缩放UIView

时间:2012-02-16 18:52:49

标签: ios uiview frame scale bounds

我正在尝试水平缩放视图,但我没有得到我预期的结果。

view.bounds = CGRectMake(view.bounds.origin.x, view.bounds.origin.y , view.bounds.size.width * scaleX, view.bounds.size.height );
view.center = CGPointMake(view.bounds.origin.x, view.center.y);

正如您在上面的代码中看到的,我想将视图缩放到右侧。这就是为什么我改变了视图的中心。

问题在于视图仍然向两边扩展! 我做了相同的逻辑,以垂直缩放另一个UIView并获得我期望的结果。

3 个答案:

答案 0 :(得分:2)

刚发现问题。

设置certer时,新点必须相对于frame而不是bounds。 所以,我得到了代码:

view.center = CGPointMake(-view.frame.origin.x, view.center.y);

希望它对某人有帮助..

寻求帮助

答案 1 :(得分:1)

如果视图框架的原点位于左上角(这是默认设置),则增加视图宽度应仅将其缩放到右侧。

这应该有效:

view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width * scaleX, view.frame.size.height);

您无需将原点/中心点调整为仅向右缩放。

答案 2 :(得分:0)

请尝试使用仿射变换:

view.transform = CGAffineTransformMakeScale(scaleX, 1)

然后设置中心。