571 Stimmen

Wie kann ich eine einfache UIButton programmatisch erstellen?

Wie kann ich eine grundlegende UIButton programmatisch? Zum Beispiel in meinem View-Controller, wenn die Ausführung der viewDidLoad Methode, drei UIButton s werden dynamisch erstellt und ihr Layout oder ihre Eigenschaften werden festgelegt.

0 Stimmen

webindream.com/einfuegen-uibutton-programmatisch-in-swift hat ein gutes Tutorial, um uibutton programmatisch hinzuzufügen

0 Stimmen

UIButton in Swift erstellen, stackoverflow.com/questions/24102191/

26voto

John Riselvato Punkte 12659

Komm schon, es ist 2014! Warum ist nicht Zuordnung der Code-Block-Auswertung noch nicht verwendet werden, da Trends zeigen es ist die Zukunft!

UIButton* button = ({
    //initialize button with frame
    UIButton* button = [[UIButton alloc] initWithFrame:({
        CGRect frame = CGRectMake(10.0, 10.0, 200.0, 75.0);
        frame;
    })];
    //set button background color
    [button setBackgroundColor:({
        UIColor* color = [UIColor colorWithRed:1.0 green:1.0 blue:0.0 alpha:1.0];
        color;
    })];
    //set button title for state
    [button setTitle:({
        NSString* string = [NSString stringWithFormat:@"title words"];
        string;
    }) forState:({
        UIControlState state = UIControlStateNormal;
        state;
    })];
    //set selector
    [button addTarget:self action:({
        SEL select = @selector(method:);
        select;
    }) forControlEvents:({
        UIControlEvents event = UIControlEventTouchUpInside;
        event;
    })];
    //return button
    button;
});
[self.view addSubview:button];

whoa!

Wow!

Oder die genauen Ergebnisse können so erzielt werden:

UIButton* button = [[UIButton alloc] initWithFrame:CGRectMake(10.0, 10.0, 200.0, 75.0)];
[button setBackgroundColor:[UIColor colorWithRed:1.0 green:1.0 blue:0.0 alpha:1.0]];
[button setTitle:@"title words" forState:UIControlStateNormal];
[button addTarget:self action:@selector(method:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];

8 Stimmen

Ein wenig übertrieben, aber eine interessante neue Funktion.

0 Stimmen

Das ist der Sinn der Sache, nämlich die Bewertung von Codeblöcken zu zeigen und die Frage zu ANTWORTEN. Es ist ärgerlich, dass dies -1's bekommt...

1 Stimmen

Sie werden mehr Bewertungen erhalten, wenn Sie eine Erklärung für warum Code-Block-Bewertungsaufgaben ist wichtig...

20voto

user2625094 Punkte 586

'action:@selector(aMethod:)' Methode wie folgt schreiben:

- (void)aMethod:(UIButton*)button
   {
         NSLog(@"Button  clicked.");
  }

Das funktioniert bei mir. Danke. KS.

15voto

Himanshu padia Punkte 6931

Objektiv-C

// Create the Button with RoundedRect type
UIButton *mybutton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
// instend of "Click Me" you can write your own message/Label
[mybutton setTitle:@"Click Me" forState:UIControlStateNormal];
// create the Rectangle Frame with specified size
mybutton.frame = CGRectMake(10, 10, 300, 140); // x,y,width,height    [self.view addSubview:mybutton];// add button to your view.

Schnell

let button   = UIButton(type: UIButtonType.System) as UIButton
button.frame = CGRectMake(100, 100, 100, 50)
button.backgroundColor = UIColor.greenColor()
button.setTitle("Test Button", forState: UIControlState.Normal)
self.view.addSubview(button)

10voto

ashokdy Punkte 1001

Versuchen Sie diesen Code, um eine Schaltfläche zu erstellen, und wiederholen Sie ihn 2 weitere Male mit unterschiedlichen Koordinaten, wobei die Methode (myButtonClick) aufgerufen wird, wenn die Schaltfläche gedrückt wird

UIButton *editButton = [UIButton buttonWithType: UIButtonTypeCustom];
editButton.frame = CGRectMake(0, 0, width, height);
[editButton setBackgroundImage: editButtonImage forState: UIControlStateNormal];
[myButton addTarget:self action:@selector(myButtonClick:)    forControlEvents:UIControlEventTouchUpInside]; 
editButton.adjustsImageWhenHighlighted = YES;
editButton.titleLabel.text = @"Edit";
editButton.titleLabel.textColor = [UIColor whiteColor];
editButton.titleLabel.textAlignment = UITextAlignmentCenter;
editButton.titleLabel.font = [UIFont fontWithName: @"Helvetica" size: 14];
[self.view addSubview: editButton];

-(void) myButtonClick:(NSString *)myString{

   NSLog(@"you clicked on button %@", myString);
}

0 Stimmen

Auf was ist myString eingestellt?

0 Stimmen

Das ist die Zeichenkette, die als Parameter nur für zusätzliche Informationen übergeben wird, Sie können diese Methode auch wie folgt verwenden -(void) myButtonClick{ NSLog(@"Sie haben auf die Schaltfläche geklickt"); } aber stellen Sie sicher, dass beim Aufrufen der Methode das : entfernt wird, verwenden Sie einfach wie folgt [myButton addTarget:self action:@selector(myButtonClick) forControlEvents:UIControlEventTouchUpInside];

0 Stimmen

+1 dafür, dass Sie zeigen, wie man mehrere Einstellungen vornehmen kann, anstatt nur eine Schaltfläche zu erstellen.

9voto

Darshan Kunjadiya Punkte 3283

Sehen Sie sich diesen Code an:

Swift 4.2

let frameimg = CGRect(x: 15, y: 46, width: 55, height: 70)
let btnTest = UIButton(type: .roundedRect)
btnTest.frame = frameimg
btnTest.tag = 11
btnTest.setTitle("Test Button", for: .normal)
btnTest.addTarget(self, action: #selector(self.buttonAction(sender:)), for: .touchUpInside)
btnTest.titleLabel?.font = UIFont.boldSystemFont(ofSize: 12.0)
btnTest.titleLabel?.lineBreakMode = .byWordWrapping
btnTest.titleLabel?.numberOfLines = 2
btnTest.titleLabel?.textAlignment = .center
btnTest.setTitleColor(UIColor.gray, for: .normal)
btnTest.setTitleColor(UIColor.blue, for: .selected)
btnTest.showsTouchWhenHighlighted = true
view.addSubview(btnTest)

Zielsetzung C

CGRect frameimg = CGRectMake(15, 46, 55,70);
UIButton  *SelectionButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
SelectionButton.frame=frameimg;
SelectionButton.tag=i;
[SelectionButton setTitle:[SelectionArray objectAtIndex:0] forState:UIControlStateNormal];
[SelectionButton addTarget:self action:@selector(BtnSelected:)
                  forControlEvents:UIControlEventTouchUpInside];
[SelectionButton.titleLabel setFont:[UIFont boldSystemFontOfSize:12.0]];
SelectionButton.titleLabel.lineBreakMode = NSLineBreakByWordWrapping;
SelectionButton.titleLabel.numberOfLines = 2;
SelectionButton.titleLabel.textAlignment = NSTextAlignmentCenter;
[SelectionButton setTitleColor:[UIColor grayColor] forState:(UIControlStateNormal)];
[SelectionButton setTitleColor:[UIColor blueColor] forState:UIControlStateSelected];
[SelectionButton setShowsTouchWhenHighlighted:YES];
[self.view addSubview:SelectionButton];

Ich hoffe, dass dieser Code für Sie funktionieren wird.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X