2015-05-25 19 views
8

Bunun hakkında bazı sorular olduğunu biliyorum ama bir çözüm bulamadım. Projelerimden birinde gayet iyi çalışan çok basit bir kod var ancak başka bir tanede değil:touchesBegan UIView alt sınıfında çağrılmadı

İşte UIView alt sınıfının kodu.

import UIKit 

class test : UIView { 

    init(frame: CGRect, color: UIColor) { 
     super.init(frame: frame) 
     self.backgroundColor = color 
     self.userInteractionEnabled = true 
    } 

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

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
     super.touchesBegan(touches, withEvent: event) 
     var alert = UIAlertView() 
     alert.title = "lol" 
     alert.message = "lol" 
     alert.addButtonWithTitle("Ok") 
     alert.show() 
    } 
} 

Çözümün oldukça basit olduğundan eminim ama bulamıyorum. Görünümünüzün tüm süper görüntülerinde userInteractionEnabled öğesinin etkin olduğundan emin olmanız gerekir.

+0

"Çalışmıyor" ile ne demek istiyorsun? – rdelmar

+0

Görünüme dokunduğumda, No AlertView öğesi –

+0

göstergesinde, uyarı görünümünde bir hata olup olmadığını görmek için işlevde basit bir println() kullanmayı denedim mi? – Wraithseeker

cevap

12

Süper görüntülerden herhangi birinin bu özelliği false olarak ayarlamış olması durumunda, dokunma etkinlikleri kendileri veya alt görünümlerinden herhangi biri için işlenmeyecektir.

+2

İstenilen sonucu elde etmemekle birlikte, view -> scrollview -> view layout'um var ve her iki görünümde de userInteractionEnabled değerini true olarak ayarladım –

4

Belki de bazı süper görüntülerin userInteractionEnabled "false" değerine ayarlanmış mı?

İlgili konular