banner
李大仁博客

李大仁博客

天地虽大,但有一念向善,心存良知,虽凡夫俗子,皆可为圣贤。

UIToolbarとUINavigationBarのUIBarButtonItemの間隔調整に関するiOS開発

iOS 開発のプロセスで、UIToolbar と UINavigationBar に追加される複数の UIBarButtonItem の間隔は通常固定されて調整できません。例えば、UINavigationBar の右側に 2 つ以上の UIBarButtonItem を追加する場合、2 つの UIBarButtonItem とその間の空白が大部分のスペースを占めるため、iPhone アプリを開発する際には、開発者は通常、2 つのボタンの代わりに UISegmentedControl を使用します。

実際には、UIToolbar のいくつかの特徴を利用すると、UIBarButtonItem の間隔を調整することができます。方法は次のとおりです:

  1. UIToolbar を定義して、2 つのボタンを格納します。
  2. 2 つのボタンの間に UIBarButtonSystemItemFlexibleSpace タイプのボタンを追加します。
  3. UIToolbar の幅を調整すると、2 つのボタンの間の空白の幅を直接調整することができます。
  4. UIToolbar を Navigationbar に追加します。

その中の 4 番目のステップでは、UIToolbar と UINavigationBar に複数の UIBarButtonItem を追加するための iOS4 以前の方法を使用します。

以下は実装コードです。

//button1
UIBarButtonItem *button1 = [[UIBarButtonItem alloc] initWithTitle:@"ボタン 1"
style
target
action];
//button2
UIBarButtonItem *button2 = [[UIBarButtonItem alloc] initWithTitle:@"ボタン 2"
style
target
action];
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem
target
action];
//toolbar の初期化
UIToolbar *rightToolbar = [[UIToolbar alloc]init];
rightToolbar.items = [NSArray arrayWithObjects,space,button2,nil];

// ボタンの tint 色をナビゲーションバーと同じにする
rightToolbar.tintColor = self.navigationController.navigationBar.tintColor;
// 幅を調整してボタンの間隔を縮小する
rightToolbar.frame = CGRectMake(220, 0, 101, 44);

// 背景を削除し、UIToolbar または UINavigationBar に追加するために使用する
rightToolbar.backgroundColor = [UIColor clearColor];
for (UIView *view in [rightToolbar subviews]) {
if ([view isKindOfClass:[UIImageView class]]) {
[view removeFromSuperview];
}
}
//navigationbar に追加する
[self.navigationController.visibleViewController.navigationController.navigationBar addSubview];

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。