我想旋转条形按钮项目 - Swift
I want to rotate a bar button item - Swift
我遇到了一个问题。我想显示 3 个按钮,用于过滤我的 tableView。我从“SF symbols”中找到了合适的图像。除了一个,它与我用于过滤(从大到小)相同,但旋转了 180 度。我不知道如何旋转条形按钮项目,所以我决定将自定义按钮添加到条形按钮项目中。
出现问题——按钮太小了。
将按钮添加到栏按钮项后:
我试过用图片配置,但是不太好,因为看起来不一样,间距也不一样
配置按钮图像后:
在调试视图层次结构中,我发现符号配置为“中”,同时其他栏按钮项具有“主体,大”。但是我还没找到怎么改。
我有几个问题:
有没有办法在不添加自定义按钮的情况下翻转栏按钮项目?
如果第一个问题的方法不可能,那么真的可以像其他显示一样“动态”配置图像吗?
我的代码:
class viewController: UIViewController {
@IBOutlet var youngToOldfilterButton: UIBarButtonItem!
enter code here
override func viewDidLoad() {
let filterButton = UIButton(type: .custom)
var image = UIImage(systemName: "line.3.horizontal.decrease.circle", withConfiguration: UIImage.SymbolConfiguration(pointSize: 22))
filterButton.setImage(image, for: .normal)
filterButton.sizeToFit()
filterButton.addTarget(self, action: #selector(action), for: .touchUpInside)
//rotation transform
filterButton.transform = CGAffineTransform(rotationAngle: 180 * .pi/180)
youngToOldfilterButton.customView = filterButton
}
@objc func action {
...
}
}
symbol config is “Medium”, meanwhile other bar button items have “Body, Large”. But I haven’t found anything how to change it.
那个方法就是用符号配置。你的问题是你使用了错误的配置:
SymbolConfiguration(pointSize: 22))
那是说 Body, Large 吗?不,你想要这个:
SymbolConfiguration(textStyle: .body, scale: .large)
https://developer.apple.com/documentation/uikit/uiimage/symbolconfiguration/3294246-init
但是,最好的解决方案可能是直接根据“递减”图像设计您自己的自定义符号图像。这需要一些时间,但并不困难,而且您显然非常关心钢筋的确切厚度和位置,所以这可能是值得的。观看 https://developer.apple.com/videos/play/wwdc2021/10250 了解信息。
我遇到了一个问题。我想显示 3 个按钮,用于过滤我的 tableView。我从“SF symbols”中找到了合适的图像。除了一个,它与我用于过滤(从大到小)相同,但旋转了 180 度。我不知道如何旋转条形按钮项目,所以我决定将自定义按钮添加到条形按钮项目中。
出现问题——按钮太小了。
将按钮添加到栏按钮项后:
我试过用图片配置,但是不太好,因为看起来不一样,间距也不一样
配置按钮图像后:
在调试视图层次结构中,我发现符号配置为“中”,同时其他栏按钮项具有“主体,大”。但是我还没找到怎么改。
我有几个问题:
有没有办法在不添加自定义按钮的情况下翻转栏按钮项目?
如果第一个问题的方法不可能,那么真的可以像其他显示一样“动态”配置图像吗?
我的代码:
class viewController: UIViewController {
@IBOutlet var youngToOldfilterButton: UIBarButtonItem!
enter code here
override func viewDidLoad() {
let filterButton = UIButton(type: .custom)
var image = UIImage(systemName: "line.3.horizontal.decrease.circle", withConfiguration: UIImage.SymbolConfiguration(pointSize: 22))
filterButton.setImage(image, for: .normal)
filterButton.sizeToFit()
filterButton.addTarget(self, action: #selector(action), for: .touchUpInside)
//rotation transform
filterButton.transform = CGAffineTransform(rotationAngle: 180 * .pi/180)
youngToOldfilterButton.customView = filterButton
}
@objc func action {
...
}
}
symbol config is “Medium”, meanwhile other bar button items have “Body, Large”. But I haven’t found anything how to change it.
那个方法就是用符号配置。你的问题是你使用了错误的配置:
SymbolConfiguration(pointSize: 22))
那是说 Body, Large 吗?不,你想要这个:
SymbolConfiguration(textStyle: .body, scale: .large)
https://developer.apple.com/documentation/uikit/uiimage/symbolconfiguration/3294246-init
但是,最好的解决方案可能是直接根据“递减”图像设计您自己的自定义符号图像。这需要一些时间,但并不困难,而且您显然非常关心钢筋的确切厚度和位置,所以这可能是值得的。观看 https://developer.apple.com/videos/play/wwdc2021/10250 了解信息。