2013年09月21日

iOS7でNavigation Bar の rightBarButtonItem に設定する UIButtonの位置を調整する

[2014/3/11 追記] 本記事に記載する現象はiOS7.1で修正されたので、本記事はiOS7.1より前のバージョンのiOS7での対策となる。

iOS7.0.xでは、Navigation Bar にUIButtonを設置した場合、iOS6以前のコードではタイトル部分がNavigation Barの縦方向にセンタリングされない現象が起きるようになった。
また、フォント属性などを明示的に設定しないと、タイトル文字が表示されない。


UIButton *addBottun = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 41, 27)];
[addBottun setTitle:@"新規" forState:UIControlStateNormal];
[addBottun addTarget:self action:@selector(add) forControlEvents:UIControlEventTouchUpInside];
addBottun.backgroundColor = [UIColor clearColor];
[addBottun setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
addBottun.titleLabel.font = [UIFont fontWithName:@"AppleGothic" size:14];
addBottun.contentEdgeInsets = UIEdgeInsetsMake(5, 0, 0, 0);

UIButtonは、contentEdgeInsetsプロパティによりタイトル文字を下方向にずらして微調整する。
UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)


UIBarButtonItem *cameraButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemCamera target:self action:@selector(cameraAction)];
cameraButtonItem.imageInsets = UIEdgeInsetsMake(-30, 20, 0, 0);

UIBarButtonItemは、imageInsetsプロパティにより微調整する。
UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)

ラベル:IOS iPAD iPhone
posted by mobileDeveloper at 21:48 | Comment(0) | TrackBack(0) | UIButton | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック