gpt4 book ai didi

ios - 从中心点折叠 UIImageView

转载 作者:搜寻专家 更新时间:2023-11-01 06:48:07 24 4
gpt4 key购买 nike

我有一个 UIImageView,我想将其外边缘向中心缩放(准确地说是顶部和底部边缘)。到目前为止,我能得到的最好结果只是一个边缘塌陷到另一个边缘(它不会移动)。我希望两条边向中间塌陷。

我已尝试将 anchor 设置为 0.5、0.5,但这并没有解决问题(没有任何变化)。

有没有一种方法可以设置 ImageView,使其向内向中间缩放,从而使外边缘向中心折叠?

这是我最好的尝试:

override public func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
var uimg = UIImage(named: "img.PNG")!
var img:UIImageView = UIImageView(image: uimg)
img.layer.anchorPoint = CGPointMake(0.5, 0.5)
view.addSubview(img)
UIView.animateWithDuration(5, animations:
{ () -> Void in
img.frame = CGRectMake(img.frame.origin.x,img.frame.origin.y,img.frame.width, 0)
})
{ (finished) -> Void in
//
}

}

最佳答案

您可以使用 UIView 的变换属性进行缩放。似乎缩放不允许您将值设为 0,并且它在没有任何动画的情况下达到最终值。因此,您基本上可以使缩放 y 值可以忽略不计,例如 0.001。

   imageView.transform = CGAffineTransformMakeScale(1, 0.001)

你也可以使用核心动画来缩放,使用CABasicAnimation,这样会更简单,

    let animation = CABasicAnimation(keyPath: "transform.scale.y")
animation.toValue = 0
animation.duration = 2.0
animation.fillMode = kCAFillModeForwards
animation.removedOnCompletion = false
imageView.layer.addAnimation(animation, forKey: "anim")

或者你也可以使用你一直在使用的方法,简单地设置框架,

    var finalFrame = imageView.frame
finalFrame.size.height = 0

finalFrame.origin.y = imageView.frame.origin.y + (imageView.frame.size.height / 2)

UIView.animateWithDuration(2.0, animations: { () -> Void in
self.imageView.frame = finalFrame
})

关于ios - 从中心点折叠 UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27612119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com