iOS添加按钮到UITableViewHeaderFooterView的右侧

时间:2016-04-16 20:13:07

标签: ios uitableview uitableviewsectionheader

我有一个表视图,并希望一个部分的标题有一个右对齐按钮。理想情况下,我可以将按钮添加到UITableViewHeaderFooterView,以便获得其标题字体类型,大小和颜色。在我的tableView(tableView: UITableView, viewForHeaderInSection section: Int)我尝试创建UIButton并将其添加到UITableViewHeaderFooterView的子视图和内容视图中,但它没有出现。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

尝试这对我来说就像一个魅力,

我在willDisplayHeaderView委托方法中添加了 UIButton

1)添加按钮

   - (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
    {
      UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
      UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
      [header addSubview:button];
      [button setFrame:CGRectMake(200, -10, 300, 44)];
      [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
      [button.titleLabel setFont:[UIFont fontWithName:@"Helvetica" size:35]];
      [button setTitle:@"Add" forState:UIControlStateNormal];
      [button addTarget:self action:@selector(addbuttonclicked) forControlEvents:UIControlEventTouchUpInside]; }

2)添加按钮操作

  -(void)addbuttonclicked
   {
     //Add code     
   }

希望这对某些人有帮助。

答案 1 :(得分:0)

使用Swift4。

这将使用willDisplayHeaderView委托方法将UIButton放置在第一部分的右下角。

override func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {
    for subview in view.subviews {
        if subview is UIButton {
           subview.removeFromSuperview()
       }
    }

    if section==0 {
        let button = UIButton(type: UIButtonType.system)
        button.setTitle("Button title", for: .normal)
        button.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
        button.translatesAutoresizingMaskIntoConstraints = false

        view.addSubview(button)
        let margins = view.layoutMarginsGuide
        button.trailingAnchor.constraint(equalTo: margins.trailingAnchor, constant: 0).isActive = true
        button.bottomAnchor.constraint(equalTo: margins.bottomAnchor, constant: 0).isActive = true
    }
}

@objc func buttonAction(sender: UIButton!) {
  print("Button tapped")
}