이번 노트는 UINavigationController navigationItem
의 navigation bar button item간의 간격조정에 대해 작성해 보려한다.
이미지처럼 navigationBar 우측에 3개의 버튼을 위치 시켰는데 버튼의 간격이 너무 좁았다. 해서 위 버튼들의 간격을 20px만큼 조정해 보려한다.
여러 방법이 있겠지만 나는 위의 item들을 UIButton
으로 각각 만들고 이를 UIStackView
에 넣어 item간의 spacing을 주는 방법을 선택했다.
let trashButton = UIButton()
trashButton.setImage(UIImage(named: "trashBlack"), for: .normal)
let refreshButton = UIButton()
refreshButton.setImage(UIImage(named: "refreshBlack"), for: .normal)
let moreButton = UIButton()
moreButton.setImage(UIImage(named: "moreBlack"), for: .normal)
let itemsStackView = UIStackView.init(arragedSubviews: [trashButton, menuButton, moreButton])
itemsStackView.distribution = .equalSpacing
itemsStackView.axis = .horizontal
itemsStackView.alignment = .center
itemsStackView.spacing = 20
self.navigationItem.rightBarButtonItem = UIBarButtonItem(customView: itemsStackView)
이렇게하면 아래 이미지와 같이 각 stackView에 spacing이 들어가 간격이 생성되는걸 볼 수있다.