Можно ли принять метку кнопки, чтобы быть в некотором диапазоне iphone SDK - PullRequest
1 голос
/ 07 мая 2010

В моем приложении я делаю динамическое изменение размера ячеек и метки в нем в зависимости от текста в нем. Я добавляю кнопку в ячейки в uitableview.

Я беру экземпляр метки и кнопки в новую переменную метки и кнопки соответственно и настраиваю их кадры, чтобы они правильно расположились после изменения размера.

     if(cel==nil)
     {
       //some code
       original_label=[[UILabel alloc]init];
       original_label.tag=111;

       //SOME MORE CODE GOES HERE

       original_button=[[UIButton alloc]init];
       original_button.tag=222;
       //SOME MORE CODE GOES HERE
     }

      new_label=(UILabel *) [cell viewWithTag:111];    //This' how I'm taking the label instance on cell and below button instance on cell in new variables
      new_button = (UIButton * ) [cell viewWithTag:222];

Раньше я держал теги всех кнопок на ячейках одинаковыми, поэтому было проще правильно размещать экземпляры кнопок на ячейках и располагать их правильно. Но теперь я хочу распознать эти кнопки по отдельности, так как я добавляю некоторую функциональность в button_click. Я даю кнопки, которые добавляются к ячейкам инкрементных тегов [1,2,3 ... 9 и т. Д.]. Теперь, как я могу взять эти теги кнопок в некотором диапазоне, как [предположим 1-9]?

Кто-нибудь может помочь?

Заранее спасибо.

1 Ответ

1 голос
/ 07 мая 2010

Вы можете оставить теги кнопок такими же, как раньше.

Вместо этого в методе button_click выясните, в какой строке находится кнопка, например:

- (void)button_click:(UIButton *)button
{
    UITableViewCell *cell = (UITableViewCell *)[[button superview] superview];
    NSIndexPath *indexPath = [tableView indexPathForCell:cell];

    //code to handle this indexPath.section and indexPath.row...
}

Предполагается, что вы добавили кнопку в cell.contentView, которую получает первое суперпредставление. Второе супервизор получает ячейку.

addTarget для кнопки должен выглядеть следующим образом (обратите внимание на двоеточие после button_click):

[original_button addTarget:self action:@selector(button_click:) forControlEvents:UIControlEventTouchUpInside];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...