如何在 Tableview 部分标题中添加两个 UIButton [英] How to add two UIButtons in Tableview section header

查看:27
本文介绍了如何在 Tableview 部分标题中添加两个 UIButton的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我添加了带有两个按钮的自定义 tableview 标题,但按钮被禁用,无法进行控制事件.我想要这样的布局.我是开发新手.任何建议或解决方案

I added custom tableview header with two buttons, but buttons are disabled , unable to make control events. i want to get layout like this. i'm new to development. any suggestions or solution

我试图在 ViewforHeaderSection 函数中添加带有按钮的视图

i tried to add view with buttons inside view in ViewforHeaderSection function

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView?{

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

    let inviteSectionHeaderview  = UIView.init(frame: CGRect(x:0, y:0, width: self.view.bounds.width, height: self.view.bounds.height))
    let selectAllBtn = UIButton.init(frame:CGRect(x:16, y: inviteSectionHeaderview.bounds.height/2, width:130, height:20))
    let sendButton = UIButton.init(frame:CGRect(x:inviteSectionHeaderview.bounds.width - 30, y: inviteSectionHeaderview.bounds.height/2, width:60, height:20))
    selectAllBtn.setTitle("select all/Cancel", for: .normal)
    selectAllBtn.backgroundColor = .black
    sendButton.backgroundColor = .black
    sendButton.setTitle("SEND", for: .normal)
    self.contactsTable.addSubview(inviteSectionHeaderview)
    inviteSectionHeaderview.addSubview(selectAllBtn)
    inviteSectionHeaderview.addSubview(sendButton)
    return inviteSectionHeaderview

}

推荐答案

您有两个选择:

  1. 在故事板中创建您的 UIView
  2. 以编程方式创建

选项 2

  1. 创建您的 UIView.

func tableView(_ tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 
    let headerView = UIView(frame: CGRect(x: 0, y: 0, width: tableView.frame.width, height: 30.0))        

    // Button1
    let button1 = UIButton(frame: CGRect(x: 15.0, y: 0, width: 100, height: 28.0)
    button1.setTitle("Button 1", for: .normal)
    button1.addTarget(self, action: #selector(selectorButton1), for: .touchUpInside)

    // Button2
    let button2 = UIButton(frame: CGRect(x: tableView.frame.width-150, y: 0, width: 150, height: 30.0))
    button2.setTitle("Button2", for: .normal)
    button2.addTarget(self, action: #selector(selectorButton2), for: .touchUpInside)
    button2.semanticContentAttribute = UIApplication.shared
        .userInterfaceLayoutDirection == .rightToLeft ? .forceLeftToRight : .forceRightToLeft

    headerView.addSubview(button1)
    headerView.addSubview(button2)
    return headerView 
}


    @objc func selectorButton1(_ sender : Any) {

    }

    @objc func selectorButton2(_ sender : Any) {

    }

在这种情况下,您必须在创建UIView(frame: CGRect())时正确设置yx位置UIButton(frame: CGRect())

In this case, you must set correctely y and x positions when create UIView(frame: CGRect()) and UIButton(frame: CGRect())

编辑

从您的代码中,您只需要添加目标:

From your code, you just need add the targets:

selectAllBtn.addTarget(self, action: #selector(selectorAllBtn), for: .touchUpInside)
sendButton.addTarget(self, action: #selector(selectorSendButton), for: .touchUpInside)

@objc func selectorAllBtn(_ sender : Any) {

}

@objc func selectorSendButton(_ sender : Any) {

}

这篇关于如何在 Tableview 部分标题中添加两个 UIButton的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆