我在谷歌上查过所有的东西,但这并不多。斯威夫特的社区真的这么小吗?
我有一张照片,在长时间的按压下,我希望它随着重力而下降,并击中屏幕的底部。
我得到的错误是
无法将“UIView”类型的值转换为预期的参数类型“UIDynamicItem”
我曾经尝试过UILabel,UIImage,UIImageView,Rect,UIView --无论我做什么,我都会犯这个错误。我的目标是使用UIImage或UIImageView。
这是我用于动画的代码:
var animator: UIDynamicAnimator!
var gravity: UIDynamicBehavior!
var collision : UICollisionBehavior!
var redBoxView: UIView?
@IBOutlet weak var detailsImageWeather: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
animator = UIDynamicAnimator(referenceView: self.view)
let imageTap = UILongPressGestureRecognizer(target: self, action: #selector(imageTapped))
detailsImageWeather.addGestureRecognizer(imageTap)
}
@objc func imageTapped() {
var frameRect = CGRect(x: 150, y: 20, width: 60, height: 60)
redBoxView = UIView(frame: frameRect)
redBoxView?.backgroundColor = UIColor.red
self.view.addSubview(redBoxView!)
let image = detailsImageWeather.image // This is what i want to use instead of redBoxView
gravity = UIGravityBehavior(items: redBoxView!)
animator.addBehavior(gravity)
collision = UICollisionBehavior (items: redBoxView!)
collision.translatesReferenceBoundsIntoBoundary = true
animator.addBehavior(collision)
let behavior = UIDynamicItemBehavior(items: [redBoxView!])
behavior.elasticity = 2
}我做错什么了?找不到更多的东西可以在谷歌上试用
发布于 2020-04-14 13:46:33
误差
无法将“UIView”类型的值转换为预期的参数类型“UIDynamicItem”
告诉您需要一个数组 of UIDynamicItem。很容易错过小方括号。
实际上,您正在使用UIGravityBehavior (一个对象)而不是[redBoxView] (一个数组)来配置您的redBoxView和UICollisionBehavior。这就是为什么你会犯错误。
您需要将您的配置更改为
gravity = UIGravityBehavior(items: [redBoxView!]) //redBoxView passed in an array还有这个
collision = UICollisionBehavior (items: [redBoxView!]) //redBoxView passed in an arrayhttps://stackoverflow.com/questions/60367149
复制相似问题