2016-06-30 13 views
0

Ich versuche, eine Tooltip-Box programmatisch zu machen. Dazu versuche ich eine Containeransicht ("Tooltip-Klasse") zu erstellen, die der Größe der übergeordneten Ansicht entspricht. Innerhalb dieser Containeransicht füge ich eine QuickInfo-Ansicht hinzu. Darin füge ich einen UIButton hinzu, für den ich ein Ziel hinzufüge. Mein Code-Schnipsel:addTarget wird nicht auf UIButton in swift aufgerufen

let container: UIView = UIView() 
let tooltipView: UIView = UIView() 
var closeButton: UIButton = UIButton() 

container.frame = view.frame 
container.center = view.center 
container.backgroundColor = UIColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.6) 

tooltipView.frame = CGRectMake(40, 40, container.frame.size.width - 80, container.frame.size.height - 80) 
tooltipView.backgroundColor = UIColor.whiteColor() 
tooltipView.layer.cornerRadius = 10.0 

Hinzufügen Schaltfläche:

closeButton = UIButton(type: .Custom) 
closeButton.imageView?.contentMode = .ScaleAspectFit 
closeButton.frame = CGRectMake(tooltipView.frame.size.width - 45, 0, 45, 45) 
closeButton.setBackgroundImage(UIImage(named: "close.png"), forState: .Normal) 
closeButton.addTarget(self, action: "closeTooltip", forControlEvents: UIControlEvents.TouchUpInside) 

Funktion:

func closeTooltip() { 
    print("action") 
    // container.removeFromSuperview() 
} 

ich den Code in einem Verfahren in einer separaten Datei implementiert haben und ich rufe diese Tooltip Methode erstellen aus der HauptansichtController-Klasse. Ich habe mehrere Lösungen ausprobiert, z. B. "userInteractionEnabled = true" hinzufügen, aber es hat nicht funktioniert.

Da ich diese gesamte Tooltip-Methode in einer anderen Klasse ("ViewController") anrufe, dachte ich, da ich selbst an sie übergebe und das in der Tooltip-Klasse erwähnte Ziel das Problem sein könnte. Also die gleiche Methode in der "ViewController" -Klasse nur zum Testen hinzugefügt. Aber das hat auch nicht funktioniert.

Bitte geben Sie mir einen Rat, wo ich hier vermisse.

Dank

+0

können Sie die schnelle Version angeben, die Sie derzeit verwenden? –

+0

@Nirav Swift v2.0 – codejunkie

+0

Gibt es eine Navigationsleiste in Ihrer Ansicht? –

Antwort

0

hmm, seine schwer von zu erraten, was Sie zeigen, aber ich denke, das Problem ist, dass Sie das Ziel vor dem Hinzufügen und fügen Sie nicht an die view ein neues UIButton Objekt erstellen. Also im Grunde denke ich, Sie fügen die Schaltfläche view auf die Erstellung der container, aber dann fügen Sie Ziel zu einer Schaltfläche, die Sie nicht verwenden

Verwandte Themen