12.5_配置UIBarButtonItem
在iOS开发中,
UIBarButtonItem是导航栏(UINavigationBar)和工具栏(UIToolbar)上的按钮,用于触发特定操作。你可以使用它来添加各种功能,例如保存、编辑、分享等。配置UIBarButtonItem是构建用户友好界面的关键一步。让我们一起探索如何配置它们!🚀
创建 UIBarButtonItem
创建 UIBarButtonItem 有几种方式,你可以根据需求选择最合适的方法。
使用系统样式: 这是最简单的方法,使用预定义的样式,例如
UIBarButtonItem.SystemItem.done或UIBarButtonItem.SystemItem.cancel。swiftlet doneButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(doneAction))使用自定义标题: 你可以创建一个带有自定义标题的按钮。
swiftlet saveButton = UIBarButtonItem(title: "保存", style: .plain, target: self, action: #selector(saveAction))使用自定义视图: 如果你需要更高级的自定义,可以使用
UIView创建一个按钮。swiftlet 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: 设置按钮的颜色。target和action: 设置按钮点击时触发的目标对象和方法。
将 UIBarButtonItem 添加到导航栏
配置好 UIBarButtonItem 后,你需要将它添加到导航栏上。你可以添加到导航栏的左侧或右侧。
swift
navigationItem.rightBarButtonItem = doneButton // 添加到右侧
navigationItem.leftBarButtonItem = saveButton // 添加到左侧你还可以一次添加多个按钮:
swift
navigationItem.rightBarButtonItems = [doneButton, saveButton]UIBarButtonItem 的 Target 和 Action
target 和 action 是 UIBarButtonItem 的核心部分,它们定义了按钮点击时执行的操作。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,为你的应用添加各种交互功能。记住,灵活运用不同的创建方式和属性设置,可以打造出更具个性化的用户界面。🎉