调整 setBarButtonItems 方法。

This commit is contained in:
Fin 2022-03-11 17:28:29 +08:00
parent eac470fb6b
commit 80f5dba7c2
6 changed files with 37 additions and 6 deletions

View File

@ -0,0 +1,26 @@
{
"images" : [
{
"filename" : "baseline_filter_drama_black_24pt_1x.png",
"idiom" : "universal",
"scale" : "1x"
},
{
"filename" : "baseline_filter_drama_black_24pt_2x.png",
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "baseline_filter_drama_black_24pt_3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
},
"properties" : {
"template-rendering-intent" : "template"
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 312 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 606 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 907 B

View File

@ -59,7 +59,7 @@ class MessageListViewController: BaseViewController {
navigationItem.searchController?.obscuresBackgroundDuringPresentation = false
navigationItem.searchController?.delegate = self
navigationItem.setBarButtonItems(items: [UIBarButtonItem(customView: deleteButton), UIBarButtonItem(customView: groupButton)], left: false)
navigationItem.setBarButtonItems(items: [UIBarButtonItem(customView: deleteButton), UIBarButtonItem(customView: groupButton)], position: .right)
self.view.addSubview(tableView)
tableView.snp.makeConstraints { make in

View File

@ -13,16 +13,21 @@ import UIKit
// fixedSpace UIBarButtonItem
// AlignmentRectInsetsOverridable /
// HitTestSlopable
enum UINavigationItemPosition {
case left
case right
}
extension UINavigationItem {
func setLeftBarButtonItem(item: UIBarButtonItem) {
setBarButtonItems(items: [item], left: true)
setBarButtonItems(items: [item], position: .left)
}
func setRightBarButtonItem(item: UIBarButtonItem) {
setBarButtonItems(items: [item], left: false)
setBarButtonItems(items: [item], position: .right)
}
func setBarButtonItems(items: [UIBarButtonItem], left: Bool) {
func setBarButtonItems(items: [UIBarButtonItem], position: UINavigationItemPosition) {
guard items.count > 0 else {
self.leftBarButtonItems = nil
return
@ -33,7 +38,7 @@ extension UINavigationItem {
guard let view = item.customView else { return }
item.customView?.translatesAutoresizingMaskIntoConstraints = false
(item.customView as? HitTestSlopable)?.hitTestSlop = UIEdgeInsets(top: -10, left: -10, bottom: -10, right: -10)
(item.customView as? AlignmentRectInsetsOverridable)?.alignmentRectInsetsOverride = UIEdgeInsets(top: 0, left: left ? 8 : -8, bottom: 0, right: left ? -8 : 8)
(item.customView as? AlignmentRectInsetsOverridable)?.alignmentRectInsetsOverride = UIEdgeInsets(top: 0, left: position == .left ? 8 : -8, bottom: 0, right: position == .left ? -8 : 8)
item.customView?.snp.makeConstraints { make in
make.width.equalTo(view.bounds.size.width > 24 ? view.bounds.width : 24)
make.height.equalTo(view.bounds.size.height > 24 ? view.bounds.height : 24)
@ -46,7 +51,7 @@ extension UINavigationItem {
spacer.width = -8
buttonItems.insert(spacer, at: 0)
}
if left {
if position == .left {
self.leftBarButtonItems = buttonItems
}
else {