2015-10-09 7 views
10

Ich versuche, etwas Text und ein Bild über eine Schaltfläche anzuzeigen. Ich bin den Code aus hereRightview in UIButton hinzufügen

let btnSort = UIButton.buttonWithType(UIButtonType.System) as! UIButton 
    btnSort.frame = CGRectMake(2, 74, 140, 26) 
    btnSort.tintColor = UIColor.whiteColor() 
    btnSort.setImage(UIImage(named:"immgg"), forState: UIControlState.Normal) 
    btnSort.imageEdgeInsets = UIEdgeInsets(top: 6,left: 100,bottom: 6,right: 14) 
    btnSort.titleEdgeInsets = UIEdgeInsets(top: 0,left: -30,bottom: 0,right: 34) 
    btnSort.setTitle("SORT", forState: UIControlState.Normal) 
    btnSort.layer.borderWidth = 1.0 
    btnSort.layer.borderColor = UIColor.whiteColor().CGColor 
    btnSort.addTarget(self, action: Selector("showSortTbl"), forControlEvents: UIControlEvents.TouchUpInside) 
    self.view.addSubview(btnSort) 

verwendet, kann ich das Bild an der richtigen Stelle sehen, aber der Text nicht angezeigt. Ich denke, titleEdgeInsets funktioniert nicht.

Antwort

22

der Code Ich versuchte, ich bekam die Ausgabe, was das Problem U konfrontiert.

btnSort.backgroundColor = UIColor.redColor() -> die Hintergrundfarbe und überprüfen

let btnSort = UIButton(type: UIButtonType.System) as UIButton! //this is Swift2.0 in this place use your code 
    btnSort.frame = CGRectMake(2, 74, 140, 40) 
    btnSort.tintColor = UIColor.whiteColor() 
    btnSort.setImage(UIImage(named:"youtube16x16.png"), forState: UIControlState.Normal) 
    btnSort.imageEdgeInsets = UIEdgeInsets(top: 6,left: 100,bottom: 6,right: 14) 
    btnSort.titleEdgeInsets = UIEdgeInsets(top: 0,left: -30,bottom: 0,right: 34) 
    btnSort.setTitle("SORT", forState: UIControlState.Normal) 
    btnSort.layer.borderWidth = 1.0 
    btnSort.backgroundColor = UIColor.redColor() --> set the background color and check 
    btnSort.layer.borderColor = UIColor.whiteColor().CGColor 
    btnSort.addTarget(self, action: Selector("showSortTbl"), forControlEvents: UIControlEvents.TouchUpInside) 
    self.view.addSubview(btnSort) 

swift3

let btnSort = UIButton(type: .system) 
    btnSort.frame = CGRect(x: 2, y: 74, width: 140, height: 40) 
    btnSort.tintColor = UIColor.white 
    btnSort.setImage(UIImage(named:"youtube16x16.png"), for: .normal) 
    btnSort.imageEdgeInsets = UIEdgeInsets(top: 6,left: 100,bottom: 6,right: 14) 
    btnSort.titleEdgeInsets = UIEdgeInsets(top: 0,left: -30,bottom: 0,right: 34) 
    btnSort.setTitle("SORT", for: .normal) 
    btnSort.layer.borderWidth = 1.0 
    btnSort.backgroundColor = UIColor.red //--> set the background color and check 
    btnSort.layer.borderColor = UIColor.white.cgColor 
    btnSort.addTarget(self, action: #selector(ViewController.showSortTbl), for: UIControlEvents.touchUpInside) 
    self.view.addSubview(btnSort) 

und behandeln die Aktion als

func showSortTbl() { 
    // do your stuff here 

} 

Ausgang

enter image description here

+0

Im Ernst, ich weiß nicht, was das Problem ist, aber ich bekomme es immer noch nicht. Ich habe das mit roter Farbe überprüft. Hat es ein Problem, weil ich swift 1.2 verwende? – Saty

+0

@Saty - Ich füge nur die Hintergrundfarbe Ihrer Schaltfläche und überprüft, ich zeigte die Antwort auch, ru versuchte die aktualisierte Antwort –

+0

Wenn ich das Bild entfernen, sehe ich den Text, verwende ich UIButton.buttonWithType (UIButtonType.System) wie! UIButton wie ich swift 1.2 benutze. Ich denke, das verursacht das Problem – Saty

0

nur Hintergrundfarbe und Ihren Text angezeigt:

let btnSort = UIButton(type: UIButtonType.System) as UIButton // Shift 2.0 

btnSort.backgroundColor = UIColor.yellowColor() 

ODER

btnSort.setTitleColor(UIColor.greenColor(), forState: UIControlState.Normal) 
0

Bitte überprüfen Sie unter Code.

Ich hoffe, es wird für Sie arbeiten.

let teamImage: UIButton = UIButton(frame: CGRect(x: 0, y: 75, width: 100, height: 50)) 
let imageTest = UIImage(named: "immgg") 

teamImage.setTitle("HypnotoadTitle", forState: .Normal) 
teamImage.setBackgroundImage(imageTest, forState: .Normal) 
self.view.addSubview(teamImage)