Кто-нибудь знает, как исправить кадры в элементах UIBarButtonItem, которые я инкапсулировал в подклассы UIBarButtonItem?
Вот что у меня есть, и это прекрасно работает, но изображение для BarButtonItem не отображается правильно.Красные стрелки указывают на кадры barButtonItems, которые следуют из этого кода.
class AddEntryButton: UIBarButtonItem {
fileprivate weak var screen: UIViewController?
init(screen: UIViewController){
self.screen = screen
super.init()
self.action = #selector(AddEntryButton.didTap)
let plusImage = #imageLiteral(resourceName: "plusSymbol")
self.setBackgroundImage(plusImage, for: .normal, barMetrics: .default)
self.style = .plain
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
@objc func didTap(_ sender: Any) {
screen.doAction()
}
}
Вотвызовите сайт внутри ViewController:
let addEntryButton = AddEntryButton(screen: self)
self.navigationItem.rightBarButtonItem = addButton
На данный момент лучше всего добавить что-то подобное в init.
self.imageInsets = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: -15)