возможно ли изменить "Y" вариант кнопки? - PullRequest
1 голос
/ 07 мая 2019

enter image description here
Вот мой код UIBarButtonItem, я добавил imageInsets для добавления к нему позиции "Y", но она не работает.

let leftBarButtonItem = UIBarButtonItem()
leftBarButtonItem.imageInsets = UIEdgeInsets(top: 0, left: 15, bottom: 0, right: 0)
leftBarButtonItem.tintColor = .red
navigationItem.setRightBarButton(leftBarButtonItem, animated: true)

1 Ответ

1 голос
/ 07 мая 2019

Это слишком простая вещь.Вы можете попробовать следующие способы:

Непосредственно с помощью UIBarButtonItem:

let leftBarButtonItem = UIBarButtonItem(image: UIImage(named: "icon_2"), style: UIBarButtonItem.Style.plain, target: self, action: #selector(rightBtnClicked(_:)))
leftBarButtonItem.imageInsets = UIEdgeInsets(top: 10, left: 15, bottom: 0, right: 0)
leftBarButtonItem.tintColor = .red
self.navigationItem.setRightBarButton(leftBarButtonItem, animated: true)

ИЛИ С помощью пользовательской кнопки:

let rightButton = UIButton(type: UIButton.ButtonType.system)
rightButton.backgroundColor = .clear
rightButton.tintColor = .red
rightButton.frame = CGRect(origin: CGPoint(x: 10, y: 10), size: CGSize(width: 40, height: 40))
//rightButton.frame = CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 40, height: 40))
//rightButton.imageEdgeInsets = UIEdgeInsets(top: 10, left: 15, bottom: 0, right: 0)
//rightButton.contentVerticalAlignment = .bottom
rightButton.setImage(UIImage(named: "icon_1"), for: UIControl.State.normal)
rightButton.addTarget(self, action: #selector(rightBtnClicked(_:)), for: UIControl.Event.touchUpInside)

let btnView = UIView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 50, height: 50)))
btnView.backgroundColor = .clear
btnView.addSubview(rightButton)

let barBtn = UIBarButtonItem(customView: btnView)
self.navigationItem.setRightBarButton(barBtn, animated: true)
...