숨겨진 UIBarButtonItem의 출현

TL;DR



비공개 API를 호출하면 UIToolbar의 다음 항목을 사용할 수 있습니다 (일반적으로 사용할 수 없음).
  • Safari의 '앞으로', '뒤로', '위', '아래'버튼
  • 지도의 '현재 위치'버튼

  • UIToolbar 이미지 문제



    인앱 브라우저를 만들 때 머리를 괴롭히는 것이 UIToolbar의 "진행""뒤로"버튼 이미지의 조달 설정입니다.

    인터넷에는 사용할 수 있을 것 같은 이미지가 많이 구르고 있지만, 실제로 맞추어 보면 미묘하게 사이즈가 다르거나, 선의 굵기가 의도한 것과 다르거나 해서 고생합니다.

    그래서 코드로 모든 것을 멈추고 싶어지지만, UIBarButtonItem에서는, 「진행」 「뒤로」등의 기본적인 것은, UIBarButtonSystemItem으로서 공개되어 있지 않습니다 (대신 왜인가 「휴지통」등이 공개되고 있습니다 …).

    이번에는 이것들을 사용할 수 있도록 UIBarButtonItem을 만져 보겠습니다.

    UIBarButtonItem 확장


    extension UIBarButtonItem {
        enum HiddenItem: Int {
            case Arrow = 100
            case Back = 101
            case Forward = 102
            case Up = 103
            case Down = 104
        }
    
        convenience init(barButtonHiddenItem: HiddenItem, target: AnyObject?, action: Selector?) {
            let systemItem = UIBarButtonSystemItem(rawValue: barButtonHiddenItem.rawValue)
            self.init(barButtonSystemItem: systemItem!, target: target, action: action)
        }
    }
    

    Toolbar로 설정


            let items =
            [
                UIBarButtonItem(barButtonHiddenItem: .Arrow, target: nil, action: nil),
                UIBarButtonItem(barButtonHiddenItem: .Back, target: nil, action: nil),
                UIBarButtonItem(barButtonHiddenItem: .Forward, target: nil, action: nil),
                UIBarButtonItem(barButtonHiddenItem: .Up, target: nil, action: nil),
                UIBarButtonItem(barButtonHiddenItem: .Down, target: nil, action: nil)
            ]
    
            self.navigationController?.setToolbarHidden(false, animated: false)
            self.setToolbarItems(items, animated: false)
    

    표준 버튼의 출현!





    그리고는, 가변, 고정 스페이스를 넣어 조정해 주면 좋을 뿐이네요.

    좋은 웹페이지 즐겨찾기