2017-06-16 4 views
-1
nach links und Bild ausgerichtet ausgerichtet

ich ein Problem habe, während ich versuche, eine UIButton mit den folgenden Optionen zu erstellen: Titel ausgerichtet nach links und Bild rechts ausgerichtet,UIButton mit dem Titel nach rechts

Ich will es tun programatically, hier ist das, was ich bisher habe versucht, es funktioniert aber nicht wie ich will zu

UIButton *definition_title = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
       definition_title.frame = CGRectMake(0,0, accordion.frame.size.width, 70.0f); 
       [definition_title setImage:[UIImage imageNamed:@"image_name.png"] forState:UIControlStateNormal]; 
       definition_title.imageEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10); 
       definition_title.imageView.contentMode = UIViewContentModeScaleAspectFit; 
       [definition_title setTitle:@"Scan the Barcode" forState:UIControlStateNormal]; 
       definition_title.titleEdgeInsets = UIEdgeInsetsMake(0.0f, 0.0f, 0.0f, 0.0f); 
       definition_title.imageEdgeInsets = UIEdgeInsetsMake(0.0f, accordion.frame.size.width-50, 0.0f, 0.0f); 
       definition_title.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; 

den obigen Code kehrt UIButton ich dieses mag

________________ 
    | text image| 

, aber ich will es so

________________ 
    |text  image| 
+0

Ich denke, das liegt daran, dass Ihr Titel Label Zentrum ausgerichtet ist, diese Zeile hinzufügen definition_title.titleLabel.textAlignment = NSTextAlignmentLeft; – Hima

Antwort

0

Ansatz 1:

einen Titel und eine Bild auf die Schaltfläche Hinzufügen und die Titel und Bild Einsätze einzustellen, um den Text und Bild auf den Seiten der Taste

enter image description here

erscheinen

Ansatz 2:

Erstellen Sie eine Unterklasse von UIButton und überschreiben Sie func imageRect(forContentRect contentRect: CGRect) -> CGRect und func titleRect(forContentRect contentRect: CGRect) -> CGRect, und stellen Sie CGRect für Titel und Bild bereit.

Beispiel:

import UIKit 

class MyTestButton: UIButton { 

    override func imageRect(forContentRect contentRect: CGRect) -> CGRect { 
     return CGRect(x: self.frame.maxX - contentRect.height/*specify your button width here am using height */, y: 0, width: contentRect.height/*specify your button width here am using height */, height: contentRect.height) 
    } 

    override func titleRect(forContentRect contentRect: CGRect) -> CGRect { 
     return CGRect(x:0, y:0, width: self.bounds.size.width - self.imageRect(forContentRect:contentRect).width,height: contentRect.height) 
    } 
} 

O/P:

enter image description here

+0

Ich brauche die genaue gegenüberliegende Version dieser –

+0

@ bonta-alexandru: Gemeinsame Kumpel :) Sie können die Frames wischen :) –

+0

das ist großartig, aber ich möchte nicht Unterklasse UIButton, und ich muss in Obj-C schreiben, auch ich muss es programmatisch tun –