Ale*_*ley 1 xcode frame uiimageview ios swift
我有一个函数可以动画 UIImageView 从一组坐标到屏幕另一侧的另一组坐标的移动。在动画期间,我想记录我点击图像时的位置。当我拨打这样的电话时,我得到的不是当前位置:
var rippleImage = UIImageView()
//example animation block
UIView.animate(withDuration: 6, delay: 0.0, options: [.curveLinear, .allowUserInteraction], animations: {
self.rippleImage.frame = CGRect(x: (xaxis - 500) , y: (yaxis - 500) , width: (self.rippleImage.frame.width + 1000), height: (self.rippleImage.frame.height + 1000))
self.rippleImage.alpha = 0.1
}, completion: nil )
//sample button click function to capture location
@objc func pianoKeyButtonTapped(sender: UIImageView) -> [String] {
// get and animate current ripple
let currentRippleLocation = self.rippleImage.frame
print(currentRippleLocation)
}
Run Code Online (Sandbox Code Playgroud)
在每种情况下,我都会得到相同的目的地位置,如下所示:
(-342.5, 67.0, 1060.0, 1060.0)
Run Code Online (Sandbox Code Playgroud)
/sf/answers/533773481/转换为 Swift 3 代码:
PresentationLayer - CALayer 的一个属性,它“提供与当前正在显示的图层版本的近似值”
let currentRippleLocation = rippleImage.layer.presentation().frame
Run Code Online (Sandbox Code Playgroud)