flyingbirdのiPhoneアプリ開発記録

- PolyRhythmの中の人がiPhoneアプリ開発中に思ったことを記録するブログです -

【Swift4】iOS11でUIBarButtonItemのサイズがおかしくなった

サイズの指定が効かない

  • UIBarButtonItemにcustomViewを使って画像を貼り付けているところのサイズが、iOS11で表示がおかしくなった。
    どうもサイズの指定が効かなくなったようだ


今までのソース

  • UIButtonを作成して、barButtonItemのcustomViewに設定していた。
    今まではこれで動いていたのだが、iOS11からはこれだけでは駄目になったようだ
let button = UIButton(frame: CGRect(x: 0.0, y: 0.0, width: 24.0, height: 24.0))
button.setBackgroundImage(UIImage(named: "hoge.png"), for: .normal)
barButtonItem.customView = button


以下を追加すれば良いとのこと

  • へぇへぇへぇ〜知らんがな
barButtonItem.customView?.widthAnchor.constraint(equalToConstant: 24.0).isActive = true
barButtonItem.customView?.heightAnchor.constraint(equalToConstant: 24.0).isActive = true


こんな感じ?

let button = UIButton(frame: CGRect(x: 0.0, y: 0.0, width: 24.0, height: 24.0))
button.setBackgroundImage(UIImage(named: "hoge.png"), for: .normal)
barButtonItem.customView = button
barButtonItem.customView?.widthAnchor.constraint(equalToConstant: 24.0).isActive = true
barButtonItem.customView?.heightAnchor.constraint(equalToConstant: 24.0).isActive = true


参考サイト

skyebook.net