我有一个UIView,我想对其进行缩放以使其尺寸加倍。我已经尝试了以下两个命令:
self.bottomView.transform = CGAffineTransform(translationX: 0, y: -125)
这一个移动到我想要的位置,但是它移动了整个视图,所以我在底部留了一个空隙。(125是我的原始高度)
self.bottomView.transform = CGAffineTransform(scaleX: 1, y: 2)
此视图可以延伸视图,但可以向上和向下延伸。我希望它仅在向上的Y轴方向上拉伸,而不能同时在两个方向上拉伸。
我应该继续哪一个?有什么方法可以选择视图应该拉伸的方式吗?此外,scaleX:y:也会扩展子视图,这对于我的原因而言并非最佳。
答案 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
}