我正在尝试水平缩放视图,但我没有得到我预期的结果。
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并获得我期望的结果。
答案 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)
然后设置中心。