gpt4 book ai didi

iOS/swift : Using touchesmoved to move UIImageView

转载 作者:行者123 更新时间:2023-11-29 01:28:34 25 4
gpt4 key购买 nike

Swift/iOS 的新手。我试图在调用touchesmoved 时移动UIImageView。但是,我似乎无法让它工作。 TouchsMoved 不会找到与 touch.view 匹配的 subview ,因此不会移动 subview 。

View 中的 UILabels 可以与 TouchMoved 函数配合使用,但 UIImageViews 则不能。

任何想法都会很有帮助。谢谢。

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
let touch = touches.first as UITouch!
let location = touch.locationInView(view)

let imageView = TouchPointModel(frame: CGRectMake(location.x - frameSize * 0.5, location.y - frameSize * 0.5, frameSize, frameSize), image: UIImage(named: "Feedback_Winner.png")!)

view.addSubview(imageView)
}

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch:AnyObject in touches {
let location = touch.locationInView(view)

for subview in view.subviews {
if touch.view == subview {
print("yahtzee")
subview.center = location
}
}
}
}

这是供引用的 TouchPointModel:

class TouchPointModel: UIImageView {
init(frame:CGRect, image:UIImage) {
super.init(frame: frame)
self.image = image
self.opaque = false
self.userInteractionEnabled = true

UIView.animateWithDuration(1.0, delay: 0.0, options: [.Repeat, .Autoreverse], animations: {
self.transform = CGAffineTransformMakeScale(1.3, 1.3)
}, completion: nil)
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}

最佳答案

看起来您正在尝试在触摸开始的位置添加 ImageView ,但触摸的 view 属性永远不会改变。也就是说,当您将手指移动到不同的 View 时,touch.view 不会改变,因此 touch.view 永远不会对应于您所使用的 ImageView 。正在添加 touchesBegan(withEvent)

PS:命名您的类 TouchPointModel 有点令人困惑,因为“模型”和“ View ”类是标准模型 View 中两种完全不同类型的对象 - Controller 范例。

关于iOS/swift : Using touchesmoved to move UIImageView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33739845/

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