添加按钮部分标题?

时间:2013-03-15 08:47:15

标签: iphone ios objective-c uitableview

我有一个带有两个部分的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;    }
}

enter image description here

4 个答案:

答案 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。

只需按照以下步骤操作....

  1. myView框架设为(0.0, 0.0, 300.0, 40.0)
  2. button框架设为(275.0, 5.0, 300.0, 20.0)
  3. 使用heightForHeaderInSection委托方法将部分的高度设置为40。
  4. 这将解决您的问题。

答案 3 :(得分:0)

设置标题视图的高度

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {

    return 81;

}