我有一个带有两个部分的tableView我想在部分标题中添加一个按钮(动作按钮)在样本图像中可以做同样的事情吗?
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
if(section ==0)
{
return 0;
}
else{
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 300.0, 20.0)];
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];
[myView addSubview:button];
return myView; }
}
答案 0 :(得分:7)
尝试这样可能对你有帮助,
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
//Headerview
UIView *myView = [[[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 300.0, 20.0)] autorelease];
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];
[myView addSubview:button];
return myView;
}
您可以在此处更改标题部分的高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{
return 40.0;
}
获取相同的按钮图像,您可以拍摄自定义图像,使用默认图像,您无法像这样显示。
答案 1 :(得分:1)
是的,这是可能的。
为此您必须使用View
创建自定义UIButton
并从UITableView Delegate方法返回:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section{
///your implementation
return customView;
}
使你的视图高度为45而不是20.它太小了。
UIView *myView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 300.0, 20.0)];
答案 2 :(得分:1)
代码中的问题是button
框架为(275.0, 5.0, 30.0, 30.0
),但myView
框架为(0.0, 0.0, 300.0, 20.0)
。
button
的高度为30,但myView
仅为20。
button
的Y位置为5,因此myView
高度需要为40。
将myView
框架更改为(0.0,0.0,300.0,40.0)。
使用heightForHeaderInSection
:委托方法,该部分的高度也设置为40。
只需按照以下步骤操作....
myView
框架设为(0.0, 0.0, 300.0, 40.0)
。button
框架设为(275.0, 5.0, 300.0, 20.0)
。heightForHeaderInSection
委托方法将部分的高度设置为40。这将解决您的问题。
答案 3 :(得分:0)
设置标题视图的高度
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 81;
}