2016년 1월 11일 월요일

네비게이션바의 버튼 위치 조정 하기



to



어찌 합니까? 어떻게 할까요?

디자인 가이드를 맞추기가 어렵다.

    //left 슬라이드 메뉴
    public func addLeftBarButtonWithImage(buttonImage: UIImage) {
        let leftButton: UIBarButtonItem = UIBarButtonItem(image: buttonImage, style: UIBarButtonItemStyle.Plain, target: self, action: "toggleLeft")
        navigationItem.leftBarButtonItem = leftButton;

    }


네비게이션바에 버튼을 추가 하면 첫번째 화면 처럼 된다.
이걸 하단 처럼 하려면

UIButton을 생성 하고 frame을 조정, contentEdgeInset을 조정 하고
UIBarButtonItem을 customView로 버튼을 지정 하는 방법을 시도 했다.
삽질이었다.

결국 간단한 방법을 찾았다.

UIBarButtonItem 중에는 가운데 스페이스 등을 지정 하는 스페이스 아이템을 버튼과 버튼 사이에 넣을수 있다.

왼쪽 left, 오른쪽 right의 그러한 스페이스를 추가 하고 음수 값을 정해서
왼쪽 버튼을 더 왼쪽으로 , 오른쪽 버튼을 더 오른쪽으로 붙일 수  있다.

그래서 다음과 같은 코드가 위 두번째 화면 과 같은 결과를 보여 준다.

    //left 슬라이드 메뉴
    public func addLeftBarButtonWithImage(buttonImage: UIImage) {
        let leftButton: UIBarButtonItem = UIBarButtonItem(image: buttonImage, style: UIBarButtonItemStyle.Plain, target: self, action: "toggleLeft")
        
        let negativeSpacer = UIBarButtonItem(barButtonSystemItem: .FixedSpace,
            target: nil, action: nil)
        
        negativeSpacer.width = -16
        
        navigationItem.setLeftBarButtonItems([negativeSpacer, leftButton], animated: false)
    }

댓글 없음: