Заголовки разделов UITableView, каждый с кнопкой, но только первая кнопка отправляет действие - PullRequest
2 голосов
/ 18 марта 2011

я добавляю кнопку в мои заголовки разделов, но работает только первая кнопка.
Другие кнопки не отображают анимацию при касании и не отправляют действие.

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
//Headerview
UIView *myView = [[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 300.0, 20.0)] autorelease];
//HeaderLabel
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(20.0, 5.0, 300.0, 30.0)] ;
label.textColor = [UIColor colorWithRed:0.286 green:0.341 blue:0.424 alpha:1.];
label.shadowColor = [UIColor whiteColor];
label.shadowOffset = CGSizeMake(0, 1);
label.font = [UIFont boldSystemFontOfSize:18];
label.backgroundColor = [UIColor clearColor];

//AddParameterButton
UIButton *button = [UIButton buttonWithType:UIButtonTypeContactAdd];
[button setFrame:CGRectMake(275.0, 5.0, 30.0, 30.0)];
button.tag = section;
button.hidden = NO;
[button setBackgroundColor:[UIColor clearColor]];
[button addTarget:self action:@selector(insertParameter:) forControlEvents:UIControlEventTouchDown];

label.text = @"Parameter";
[myView addSubview:label];
[myView addSubview:button];
[myView bringSubviewToFront:button];
[label release];
return myView;
}

Есть предложения по решению?СПАСИБО
// edit:
Я немного отладил, и viewForHeaderInSection: вызывается шесть раз, но есть только два раздела.надеюсь, что смогу помочь
// edit2
попытался добавить кнопки как свойство и сделать это нединамическим способом, но тоже не помогает

Ответы [ 3 ]

2 голосов
/ 18 марта 2011

@ Seega:

Попробуйте установить уникальные идентификаторы для каждой из кнопок кнопок.

В основном я говорю о тегах кнопок, а затем пытаюсь получить доступ к кнопкам по их тегам в методе insertParameter:, думаю, это решит вашу проблему.

Поскольку у вас есть одна кнопка на раздел, я считаю, что у вас есть лучший вариант установить тег как indexPath.section

. Вы можете добавить тег в методе - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section, как показано ниже

[button setTag:section];

ИЛИ

button.tag = section;

Поэтому попробуйте использовать теги кнопок просто для уникальной идентификации кнопки в каждом разделе.

Надеюсь, это поможет вам

1 голос
/ 18 марта 2011

Вы должны создать кнопки для каждого раздела.Используйте условие if и поместите свой код в каждый блок.

if (section == 0) 
{

//code to create your button

}
else if(section == 1) 
{

//code to create your button

}

else
{

//code to create your button

}

Попробуйте это.

0 голосов
/ 18 марта 2011

было в моей высоте ForHeaderInsection

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section < 2)
    return 40;
return 10;
}

поменял и нормально работает
так что большое спасибо, думаю, что я немного слепой
извините и спасибо

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