使用宏分別定義文本條目,映像條目,系統條目和定製視圖條目,這些宏都提供一個可置入UIToolBar 的自動發布UIBarButtonItem。
#define COOKBOOK_PURPLE_COLOR [UIColor colorWithRed:0.20392f green:0.19607f blue:0.61176f alpha:1.0f]
#define BARBUTTON(TITLE, SELECTOR) [[[UIBarButtonItem alloc] initWithTitle:TITLE style:UIBarButtonItemStylePlain target:self action:SELECTOR] autorelease]
#define IMGBARBUTTON(IMAGE, SELECTOR) [[[UIBarButtonItem alloc] initWithImage:IMAGE style:UIBarButtonItemStylePlain target:self action:SELECTOR] autorelease]
#define SYSBARBUTTON(ITEM, SELECTOR) [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:ITEM target:self action:SELECTOR] autorelease]
#define CUSTOMBARBUTTON(VIEW) [[[UIBarButtonItem alloc] initWithCustomView:VIEW] autorelease]
//建立工具列
UIToolbar *tb = [[UIToolbar alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 320.0f, 44.0f)];
tb.center = CGPointMake(160.0f, 200.0f);
NSMutableArray *tbitems = [NSMutableArray array];
[tbitems addObject:BARBUTTON(@"Title", @selector(action))];
[tbitems addObject:SYSBARBUTTON(UIBarButtonSystemItemAdd, @selector(action))];
[tbitems addObject:IMGBARBUTTON([UIImage imageNamed:@"TBUmbrella.png"], @selector(action))];
[tbitems addObject:CUSTOMBARBUTTON([[[UISwitch alloc] init] autorelease])];
[tbitems addObject:SYSBARBUTTON(UIBarButtonSystemItemFlexibleSpace, nil)];
[tbitems addObject:IMGBARBUTTON([UIImage imageNamed:@"TBPuzzle.png"], @selector(action))];
// Add fixed 20 pixel width
UIBarButtonItem *bbi = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil] autorelease];
bbi.width = 20.0f;
[tbitems addObject:bbi];
tb.items = tbitems;
[self.view addSubview:tb];
[tb release];
工具列提示:
處理工具列是,使用一些小技巧可能會很有用。
1、固定空間可以擁有寬度----在所有UIBarButtonITem中,只有 UIBarBuutonSystemItemFixedSpace 條目可以被分配一個寬度,因此,建立空間條目、設定其寬度,然後在將其添加到條目列中。
2、使用一個靈活空間進行靠左對齊或靠右對齊----在條目列表中開始添加一個 UIBarButtonSystemITemFlexibleSpace 會使所有剩餘條目靠右對齊。在末尾添加一個,則靠左對齊。使用兩個 UIBarButtonSystemItemFlexibleSpace ,一個添加在開頭,一個添加在末尾,會使剩餘條目置中對齊。
3、考慮遺漏的條目----根據上下文隱藏欄按鈕條目時,不要只使用靈活的空間分配來除去條目。而應使用一個與條目原來大小匹配的固定寬度的空間代替該條目。這樣做會在條目消失前後儲存布局並保持其他所有表徵圖位置不變。