новое для Swift/iOS. Я пытаюсь переместить UIImageView, когда вызывается touchhesmoved. Но я не могу заставить его работать. ПрикосновенияМожет не найти subview, который соответствует touch.view и, следовательно, не будет перемещать subview.iOS/Swift: Использование touchhesmoved для перемещения UIImageView
В представлении есть UILabels, которые работают с функцией touchesMoved, но 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")
}
}
спасибо, это имеет смысл. так есть ли свойство прикосновения, которое можно использовать, чтобы найти соответствующий вид? –
'touch.view' - это вид, в котором началось касание, и обычно это тот, с которым вы хотите пойти, если вы используете касание, чтобы перетащить вид. Если вы хотите переместить представление изображения вокруг, у вас есть пара вариантов. Один из них заключается в том, чтобы добавить представление изображения в иерархию представления до начала касания, так что 'touch.view' * - это вид, который вы перемещаете. Другое - продолжать делать то, что вы делаете, но отслеживать изображение, которое вы вставляете другими средствами (ivar или свойство), а затем переместить это. В любом случае вам не нужно будет перебирать все ваши подпункты, чтобы найти тот, который нужно переместить. – Caleb