Nasıl duygulandım hangi görüntüyü tanımak.Ben kullanıcı sürüklemek ve bir tuval üzerinde damla öğeleri ve o görüntüyü serbest bıraktığında o tuval üzerine çizilir mümkün olacak bir uygulama geliştiriyorum
ornament1.dropTarget = xmasTree
ornament2.dropTarget = xmasTree
ornament3.dropTarget = xmasTree
ornament4.dropTarget = xmasTree
NotificationCenter.default.addObserver(self, selector: #selector(ViewController.itemDroppedOnTree(_:)), name: NSNotification.Name(rawValue: "onTargetDropped"), object: nil)
}
func itemDroppedOnTree(_ notif : AnyObject){
}
Ben X'i başardı: Ben dokunuşlar vb işlemek için kod parçası eklendi benim ViewController sınıfta
class DragImages: UIImageView {
var originalPos : CGPoint!
var dropTarget: UIView?
override init (frame : CGRect){
super.init(frame: frame)
}
required init?(coder aDecoder : NSCoder){
super.init(coder : aDecoder)
}
override func touchesBegan(_ touches : Set<UITouch>,with event: UIEvent?){
originalPos = self.center
}
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first{
let position = touch.location(in: self.superview)
self.center = CGPoint(x : position.x, y : position.y)
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first, let target = dropTarget{
let position = touch.location(in: self.superview)
if target.frame.contains(position){
NotificationCenter.default.post(Notification(name: Notification.Name(rawValue: "onTargetDropped"), object: nil))
}else {
self.center = originalPos
}
}
print(self.center.x, self.center.y)
self.center = originalPos
}
func getEndPosX() -> CGFloat{
return self.center.x
}
func getEndPosY() -> CGFloat {
return self.center.y
}
}
:
Bu
dokunuşlar aitlisteler dragImage sınıftır ve görüntü tuval üzerine sürüklenmekte ama bana o belirli çizmek için sırayla bırakılıyor 4 görüntülerin hangi tanımak için bir yol bulmak olamaz Y konumu! Sen bildirim (ve ayrıca konum) göndermesini ekleyebilir
İlk olarak, UIImageView.isUserInteractionEnabled() öğesini true olarak ayarlamayı unutmayın (hepimiz hata yaparız). İkincisi, etiket özelliklerini kurun - hangi dokunulduğunu bilmenize yardımcı olurlar. Üçüncü? İşler iyi görünüyor, ancak başka sorunlarınız varsa, UIGestureRecognizers'ı kullanmayı deneyin veya mevcut ayarlarınızı hata ayıklamaya çalışın. – dfd
ive UIGestureRecognizer ama hiç şans kullanarak çalıştı. Etiket mülkünü söylediğinde benim durumumda bunu ne kadar da kullanabildim? Bana rehberlik etmem için bana bir örnek kod verebilir misin? – pavlos
Bildirimler yerine viewController'ı bilgilendirmek için bir temsilci kullanın. Temsilci işlevi, ilk parametre olarak ekiciye sahiptir. 'tableView: tableView cellForRowAt: ... 'gibi. Bu şekilde hangi resmin olduğunu biliyorsunuz. Genel olarak, sadece birçok yayın için Bildirimleri kullanın. – shallowThought