Как создать кнопку в цикле и назначить каждой кнопке определенный тег - PullRequest
1 голос
/ 02 июля 2011

Я хочу создать кластер кнопок. Для этого я использую такой цикл.

for (int i =0; i< [plistArray count];i++) {

    editButton = [[UIButton alloc]initWithFrame:CGRectMake(width-10, -3.6, 39, 35)];
    [editButton setImage:[UIImage imageNamed:@"DeleteButton.png"] forState:UIControlStateNormal];
    [editButton addTarget:self action:@selector(deleteObjectViewImage:) forControlEvents:UIControlEventTouchUpInside];
}

, но когда я нажимаю на любую случайную кнопку, назначенная функция не вызывается. Она вызывается, когда я нажимаюпервая кнопка (в последовательности 1,2,3).

1 Ответ

2 голосов
/ 02 июля 2011

Вот один из них:

    #define ButtonHeight 40

    #define OffsetBetweenButtons 20

    #define ButtonHeightPlusOffsetBetweenButtons (ButtonHeight+OffsetBetweenButtons)

//create 6 buttons from 0,1,2,3,4,5 so totally 6 buttons
for(int buttonIndex=0;buttonIndex<=5;buttonIndex++){

    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

    [button addTarget:self 
               action:@selector(aMethod:)
     forControlEvents:UIControlEventTouchUpInside];

    [button setTitle:@"Button" forState:UIControlStateNormal];

    [button setImage:[UIImage imageNamed:@"DeleteButton.png"] forState:UIControlStateNormal];

    //Set offset in Y axis
    button.frame = CGRectMake(20.0, ButtonHeightPlusOffsetBetweenButtons * buttonIndex , 280.0, 40.0);

    //Set Tag for future identification
    [button setTag:buttonIndex];

    [YourView addSubview:button];

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...