我正在try 从iOS 17获得新的符号动画,为UIBarButtonItem工作.以下链接的WWDC 2023视频《在你的应用程序中制作符号动画》promise 如下:
遗憾的是,视频附带的所有示例代码仅说明了使用UIImageView.我曾try 使用UIImageView作为在初始化时传递给我的UIBarButtonItem的自定义视图作为解决办法,但这也不能正常工作.
需要说明的是,我希望在UIBarButtonItemusing the class's function.上实现该效果
我用故事板做了一个小演示项目.代码如下所示:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let config = UIImage.SymbolConfiguration(scale: UIImage.SymbolScale.large)
let image = UIImage(systemName: "playpause.fill", withConfiguration: config)
let resumeButton =
UIBarButtonItem(image: image, style: .plain, target: self, action: #selector(sayHello))
resumeButton.addSymbolEffect(.pulse, options: .repeating, animated: true)
resumeButton.isSymbolAnimationEnabled = true
toolbarItems = [resumeButton]
}
@objc func sayHello(_ sender: UIBarButtonItem) {
print("Hello: \(sender)")
}
}
据我所知,这应该是我让它工作所需的全部.按钮显示、大小和排列正确,但没有脉动.与苹果promise 的相反,象征效应似乎完全消失了.
有谁知道我哪里出了问题吗?(我希望是我,而不是苹果!)
以下是故事板的截图,仅供参考:
以下是模拟器的屏幕截图:
我试过在模拟器和实际设备上运行这个程序,但没有成功.按钮没有脉动.
顺便说一句,使用图像视图作为自定义视图将产生一个脉冲按钮.然而,对于工具栏中的其他按钮,使用自定义视图的按钮既没有正确排列,也没有适当的大小,when running on an iOS device.(奇怪的是,它在模拟器中看起来很好!)这似乎是一个已知的长期问题,可以一直追溯到iOS 11,显然没有简单的答案.我宁愿放弃整个效果,也不愿try 某种杂乱无章的方式来调整图像视图的大小和重新排列.
谢谢.