I can make one or more like this UIButton (in a loop, but shortened for simplicity):
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self < br /> action:@selector(buttonClicked:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Button x" forState:UIControlStateNormal];
button.frame = CGRectMake(100.0, 100.0, 120.0, 50.0);
[view addSubview:button];
Copy/Edit this link:
How do I create a basic UIButton programmatically?
But how to determine in buttonClicked: which button was clicked? If possible, I want to pass label data to identify the button.
for( int i = 0; i <5; i++) {
UIButton* aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[ aButton setTag:i];
[aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[aView addSubview:aButton];
}
// then ...
- (void)buttonClicked:(UIButton*)button
{
NSLog(@"Button %ld clicked.", (long int )[button tag]);
}
I want to programmatically add multiple UIButtons to the view-unknown number of buttons at compile time.
I can make one or more UIButtons like this (in a loop, but shortened for simplicity):
UIButton *button = [ UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self
action:@selector(buttonClicked:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Button x" forState :UICon trolStateNormal];
button.frame = CGRectMake(100.0, 100.0, 120.0, 50.0);
[view addSubview:button];
Copy/Edit this link:
How do I create a basic UIButton programmatically?
But how to determine in buttonClicked: which button was clicked? If possible, I want to pass label data to identify the button.
You can keep a reference to the actual button object in an important location (such as an array) , Or set the button’s tag to something useful (such as an offset in some other data array). For example (use a label, because this usually must be useful):
for( int i = 0; i <5; i++) {
UIButton* aButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[aButton setTag:i];
[aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
[aView addSubview:aButton];
}
// then ...
- (void)buttonClicked:(UIButton*)button
{
NSLog(@"Button %ld clicked.", (long int)[button tag]);
}