iOS在UITableViewHeaderFooterView右侧添加按钮

Posted

技术标签:

【中文标题】iOS在UITableViewHeaderFooterView右侧添加按钮【英文标题】:iOS add button to right side of UITableViewHeaderFooterView 【发布时间】:2016-04-16 20:13:07 【问题描述】:

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

【问题讨论】:

【参考方案1】:

使用 Swift 4。

这会使用 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")

【讨论】:

【参考方案2】:

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

我在 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     
   

希望这对某些人有所帮助。

【讨论】:

以上是关于iOS在UITableViewHeaderFooterView右侧添加按钮的主要内容,如果未能解决你的问题,请参考以下文章

iOS8 扩展 - 在 iOS 5/6/7 上会发生啥?

如何在 iOS 4 上运行 iOS 5/ARC 项目

iOS 纵横比约束在 iOS 7 上中断,适用于 iOS 8

iOS 5 MapKit,MKPlacemark,在 iOS 5 上运行 iOS 4.3 应用程序

[iOS] 在 ios10 中使用 imessage

UIButton 在 iOS 7 的兼容模式下没有获得 iOS 6 样式