我在我的Sectionheaders中添加了一个按钮,但只有第一个Button工作 其他按钮既不显示触摸动画也不发送动作。
- (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;
}
任何解决方案?
谢谢你
的 //编辑:
我调试了一下,viewForHeaderInSection:
被调用了六次,但只有两个部分。希望我能帮助你
的 // EDIT2
试图将按钮添加为属性并以非动态方式执行,但也没有帮助
答案 0 :(得分:2)
@Seega:
尝试为每个按钮按钮设置唯一标识符。
基本上我说的是按钮标签,然后尝试通过insertParameter:
方法中的标签访问按钮,我认为这可以解决您的问题。
由于每个部分只有一个按钮,我觉得您最好选择将标记设置为indexPath.section
您可以使用- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
方法添加标记,如下所示
[button setTag:section];
OR
button.tag = section;
因此,请尝试使用按钮标记来唯一标识每个部分上的按钮。
希望这有助于你
答案 1 :(得分:1)
您应该为每个部分创建按钮。使用if条件并将代码放在每个块中。
if (section == 0)
{
//code to create your button
}
else if(section == 1)
{
//code to create your button
}
else
{
//code to create your button
}
试试这个。
答案 2 :(得分:0)
在我的身高ForHeaderInsection
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
if (section < 2)
return 40;
return 10;
}
改变它并且工作正常 所以非常感谢你,我想我是一个小代码盲人 对不起,谢谢你