複数の枠なしボタンを線で別けてUINavigationBarに設置する
iOS7になって、UINavigationBar
に配置するUIBarButtonItem
の枠が消えました。
iOS6以前のUIに慣れたユーザーがこれに慣れるのは時間がかかるかも。
枠がないのが良いのかどうかは置いといて、
この仕様に対応させるときに、複数ボタン置くと問題が起こります。
Apple的にはこれは有りなのかわかりませんが、さすがにちょっと不快です。
まぁ、アイコンにしろってことかもしれませんが・・・
ということで、暫定的な対処ですが、ボタン同士の間に線を引いてごまかしてみました。
やり方は簡単。 間に縦線みたいなUIViewを入れるだけです。
UIBarButtonItem* item0 = [[UIBarButtonItem alloc] initWithTitle:@"シェア" style:UIBarButtonItemStylePlain target:nil action:nil] ; UIBarButtonItem* item1 = [[UIBarButtonItem alloc] initWithTitle:@"保存" style:UIBarButtonItemStylePlain target:nil action:nil] ; // 区分用のViewを作成 float sepa_height = CGRectGetHeight(self.navigationController.navigationBar.frame) - 10 ; UIView* separator = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, sepa_height)] ; separator.backgroundColor = self.view.tintColor ; UIBarButtonItem* itemS = [[UIBarButtonItem alloc] initWithCustomView:separator] ; self.navigationItem.rightBarButtonItems = @[item0, itemS, item1] ;
こんな感じになります。
あとはグラデーション入れるなり画像にするなりでなんとかなりそうですね。
どうでもいいアプリをとりあえずiOS7に対応させるときとかにどうぞ。