向上缩放UIVIew

时间:2018-08-09 09:35:00

标签: ios swift cgaffinetransform

我有一个UIView,我想对其进行缩放以使其尺寸加倍。我已经尝试了以下两个命令:

self.bottomView.transform = CGAffineTransform(translationX: 0, y: -125)

这一个移动到我想要的位置,但是它移动了整个视图,所以我在底部留了一个空隙。(125是我的原始高度)

self.bottomView.transform = CGAffineTransform(scaleX: 1, y: 2)

此视图可以延伸视图,但可以向上和向下延伸。我希望它仅在向上的Y轴方向上拉伸,而不能同时在两个方向上拉伸。

我应该继续哪一个?有什么方法可以选择视图应该拉伸的方式吗?此外,scaleX:y:也会扩展子视图,这对于我的原因而言并非最佳。

3 个答案:

答案 0 :(得分:0)

我认为您可以使用以下API。

CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy)

仅更新一个轴:使用recognizer.scale的X或Y,并保留另一个1.0f来实现一个方向的缩放。

答案 1 :(得分:0)

说明更多。以我的理解,您想沿UI方向拉伸UIView而不移动。使用锚点避免移动。这里的0.5和0.25只是样本值

self.bottomView.transform = CGAffineTransform(scaleX: 1, y: 2)
self.bottomView.anchorPoint = CGPoint(x: 0.5, y: 0.25);

答案 2 :(得分:0)

这是一个可能对您有所帮助的简单解决方案-只需在UIView上对拉伸操作进行动画处理即可。

    UIView.animate(withDuration: 0.2) {
        self.bottomView.frame.size.height = self.bottomView.frame.size.height * 2
    }