Skip to content

12.5_配置UIBarButtonItem

在iOS开发中,UIBarButtonItem 是导航栏(UINavigationBar)和工具栏(UIToolbar)上的按钮,用于触发特定操作。你可以使用它来添加各种功能,例如保存、编辑、分享等。配置 UIBarButtonItem 是构建用户友好界面的关键一步。让我们一起探索如何配置它们!🚀

创建 UIBarButtonItem

创建 UIBarButtonItem 有几种方式,你可以根据需求选择最合适的方法。

  1. 使用系统样式: 这是最简单的方法,使用预定义的样式,例如 UIBarButtonItem.SystemItem.doneUIBarButtonItem.SystemItem.cancel

    swift
    let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneAction))
  2. 使用自定义标题: 你可以创建一个带有自定义标题的按钮。

    swift
    let saveButton = UIBarButtonItem(title: "保存", style: .plain, target: self, action: #selector(saveAction))
  3. 使用自定义视图: 如果你需要更高级的自定义,可以使用 UIView 创建一个按钮。

    swift
    let customView = UIButton(frame: CGRect(x: 0, y: 0, width: 40, height: 40))
    customView.setTitle("自定义", for: .normal)
    customView.addTarget(self, action: #selector(customAction), for: .touchUpInside)
    let customButton = UIBarButtonItem(customView: customView)

设置 UIBarButtonItem 的属性

创建好 UIBarButtonItem 后,你可以设置它的各种属性来定制外观和行为。

  • title: 设置按钮的标题。
  • image: 设置按钮的图片。
  • isEnabled: 控制按钮是否可用。
  • tintColor: 设置按钮的颜色。
  • targetaction: 设置按钮点击时触发的目标对象和方法。

将 UIBarButtonItem 添加到导航栏

配置好 UIBarButtonItem 后,你需要将它添加到导航栏上。你可以添加到导航栏的左侧或右侧。

swift
navigationItem.rightBarButtonItem = doneButton // 添加到右侧
navigationItem.leftBarButtonItem = saveButton // 添加到左侧

你还可以一次添加多个按钮:

swift
navigationItem.rightBarButtonItems = [doneButton, saveButton]

UIBarButtonItem 的 Target 和 Action

targetactionUIBarButtonItem 的核心部分,它们定义了按钮点击时执行的操作。target 是接收消息的对象,action 是要执行的方法。

swift
@objc func doneAction() {
    print("完成按钮被点击")
}

@objc func saveAction() {
    print("保存按钮被点击")
}

@objc func customAction() {
    print("自定义按钮被点击")
}

确保你的 action 方法使用 @objc 标记,并且参数类型正确。

示例代码

下面是一个完整的示例,展示如何创建一个带有 "完成" 按钮的导航栏:

swift
import UIKit

class MyViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white

        let doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneAction))
        navigationItem.rightBarButtonItem = doneButton
    }

    @objc func doneAction() {
        print("完成按钮被点击")
    }
}

通过以上步骤,你可以轻松地配置 UIBarButtonItem,为你的应用添加各种交互功能。记住,灵活运用不同的创建方式和属性设置,可以打造出更具个性化的用户界面。🎉

本站使用 VitePress 制作