2017-09-07 3 views
1

Ich versuche, benutzerdefinierte Ansicht auf Schaltfläche Aktion hinzuzufügen. benutzerdefinierte Ansicht ist erfolgreich hinzufügen, aber es zeigt nicht richtigWie benutzerdefinierte Ansicht nach UIButton Speicherort in Swift hinzufügen?

@IBAction func sideButtonAction(_ sender: UIButton) { 
     sideSubView = SideView(frame: CGRect(x: sender.frame.origin.x ,y: sender.frame.origin.y + 40,width: 200,height: 200)) 
     self.view.addSubview(sideSubView) 
    } 

In UIView Klasse

func xibSetup() { 
     view = loadViewFromNib() 
     view.frame = bounds 
     view.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight] 
     addSubview(view) 
    } 

    override init(frame: CGRect) { 
     super.init(frame: frame) 
     xibSetup() 
    } 

enter image description here

In Screenshot, blau View ist benutzerdefinierte Ansicht, es ist nicht richtig zeigen, ich habe eingestellt Höhe und Breite ist 200.

Dank

Antwort

0

Der Screenshot zeigt den Code funktioniert wie es sollte. Ihre Ansicht beginnt unterhalb der Schaltfläche und bewegt sich nach rechts. Ich gehe davon aus, dass Sie die gesamte 200 Breite und Höhe unter dem Button sehen wollten. Wenn das der Fall ist, dann müssen Sie diese Zeile

sideSubView = SideView(frame: CGRect(x: sender.frame.origin.x ,y: sender.frame.origin.y + 40,width: 200,height: 200)) 

zu

sideSubView = SideView(frame: CGRect(x: sender.frame.origin.x + sender.frame.size.width - 200 , y: sender.frame.origin.y + sender.frame.size.height, width: 200, height: 200)) 
1

Bitte verwenden Sie diese,

sideSubView = SideView(frame: CGRect(x: sender.frame.origin.x - 200 ,y: sender.frame.origin.y + 40,width: 200,height: 200)) 
0

Es ist wie Ihre Schaltfläche auf Navigationsleiste aussehen ändern und Sie hinzufügen, blau Blick auf Controller Sicht. Beide Ansichten sind unterschiedlich, so dass die Punktkoordinaten für beide unterschiedlich sind. Sie müssen die relative Koordinate an den Rahmen Ihrer blauen Ansicht übergeben.

Verwandte Themen