完成 --> 编辑)?-6ren"> 完成 --> 编辑)?-我试图在运行时“干净地”更改 UIBarButtonItem 文本,以便可以切换编辑/完成模式。然而,每次我在运行时更改 title 属性时,动画看起来都很笨拙。我正在寻找模拟联系人应用程序中“编辑/-6ren">
gpt4 book ai didi

ios - 如何在运行时 "cleanly"期间更改 UIBarButtonItem 文本(编辑 --> 完成 --> 编辑)?

转载 作者:行者123 更新时间:2023-11-28 12:38:33 27 4
gpt4 key购买 nike

我试图在运行时“干净地”更改 UIBarButtonItem 文本,以便可以切换编辑/完成模式。然而,每次我在运行时更改 title 属性时,动画看起来都很笨拙。我正在寻找模拟联系人应用程序中“编辑/完成”按钮的外观和功能(其中“编辑”只是淡出,“完成”出现在它的位置)。

@IBAction func editDoneButtonPressed(sender: UIBarButtonItem) {

if(sender.title == "Edit"){
sender.title = "Done"
}else{
sender.title = "Edit"
}

}

初始设置:标识符设置为“自定义”,标题设置为“编辑”

首选更简单的编程解决方案,但是,动画的外观确实是最重要的。我会考虑切换 UIBarButtonItem 标识符,而不是它的文本属性,但是,我不确定在运行时切换标识符的优雅方式。

顺便说一句:我正在使用 Swift 构建应用程序。

链接到...

联系人应用编辑/完成切换动画的截屏: https://youtu.be/5mT_vzpNhIw

我的编辑/完成切换动画的截屏: https://youtu.be/mEweotJNVNE

谢谢。

最佳答案

有一种更好的方法,一种标准方法,可以获取“编辑/完成”按钮。

UIViewController 提供了一个标准的编辑/完成按钮,它已经挂接到 View Controller 的 editing 属性中。

一个常见的用法如下:

在 View Controller 的 viewDidLoad 方法中,使用标准按钮:

self.navigationItem.rightBarButtonItem = editButtonItem

editButtonItem 放在您实际需要的地方。

然后,无需设置您自己的操作,只需覆盖 setEditing(_:animated:) 方法即可:

override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)

if (editing) {
// user just tapped the Edit button (it now says Done)
} else {
// user just tapped the Done button (it now says Edit)
}
}

关于ios - 如何在运行时 "cleanly"期间更改 UIBarButtonItem 文本(编辑 --> 完成 --> 编辑)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40144020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com