navigation bar 分爲三個部分,左按鈕,右按鈕和中間的View.
在Controller中可以通過以三個方式來引用:
- self . navigationItem. titleView
- self . navigationItem. leftBarButtonItem
- self . navigationItem. rightBarButtonItem
左右按鈕可以使用UIBarButtonItem來構造. 他默認有很多種按鈕可攻選擇:
- typedef enum {
- UIBarButtonSystemItemDone,
- UIBarButtonSystemItemCancel,
- UIBarButtonSystemItemEdit,
- UIBarButtonSystemItemSave,
- UIBarButtonSystemItemAdd,
- UIBarButtonSystemItemFlexibleSpace,
- UIBarButtonSystemItemFixedSpace,
- UIBarButtonSystemItemCompose,
- UIBarButtonSystemItemReply,
- UIBarButtonSystemItemAction,
- UIBarButtonSystemItemOrganize,
- UIBarButtonSystemItemBookmarks,
- UIBarButtonSystemItemSearch,
- UIBarButtonSystemItemRefresh,
- UIBarButtonSystemItemStop,
- UIBarButtonSystemItemCamera,
- UIBarButtonSystemItemTrash,
- UIBarButtonSystemItemPlay,
- UIBarButtonSystemItemPause,
- UIBarButtonSystemItemRewind,
- UIBarButtonSystemItemFastForward,
- UIBarButtonSystemItemUndo, // available in iPhone 3.0
- UIBarButtonSystemItemRedo, // available in iPhone 3.0
- } UIBarButtonSystemItem;
通過構造初始化可以設置這些按鈕的種類:
- [[[UIBarButtonItem alloc]
- initWithBarButtonSystemItem:UIBarButtonSystemItemPlay
- target:nil action:NULL] autorelease];
除此之外,UIBarButtonItem還有幾種外觀風格:
- typedef enum {
- UIBarButtonItemStylePlain, // shows glow when pressed
- UIBarButtonItemStyleBordered,
- UIBarButtonItemStyleDone,
- } UIBarButtonItemStyle;
當然按鈕有風格之分, navigation bar 也有幾種可選風格:
- typedef enum {
- UIBarStyleDefault = 0 ,
- UIBarStyleBlack = 1 ,
- UIBarStyleBlackOpaque = 1 , // Deprecated. Use UIBarStyleBlack
- UIBarStyleBlackTranslucent = 2 , // Deprecated. Use UIBarStyleBlack and set the translucent property to YES
- } UIBarStyle;
通過:navigationController. navigationBar. barStyle = UIBarStyleBlackTranslucent這樣的語句就可以設置了.
這個UIBarStyle的風格還適用於UIToolbar. 並且UIToolBar中也是可以放置UIBarButtonItem的.
- NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity: 4 ];
- UIBarButtonItem *flexibleSpaceItem;
- flexibleSpaceItem = [[[UIBarButtonItem alloc]
- initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
- target:nil action:NULL] autorelease];
- [buttons addObject:flexibleSpaceItem];
- [flexibleSpaceItem release];
- UIBarButtonItem *item;
- item = [[UIBarButtonItem alloc]
- initWithImage:[UIImage imageNamed:@"down.png" ]
- style:UIBarButtonItemStylePlain
- target:self
- action:@selector (decrement:)];
- [buttons addObject:item];
- [item release];
- item = [[UIBarButtonItem alloc]
- initWithImage:[UIImage imageNamed:@"up.png" ]
- style:UIBarButtonItemStylePlain target:self
- action:@selector (increment:)];
- [buttons addObject:item];
- [item release];
- item = [[[UIBarButtonItem alloc]
- initWithBarButtonSystemItem:UIBarButtonSystemItemPlay
- target:nil action:NULL] autorelease];
- [buttons addObject:item];
- [item release];
- flexibleSpaceItem = [[[UIBarButtonItem alloc]
- initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace
- target:nil action:NULL] autorelease];
- [buttons addObject:flexibleSpaceItem];
- [flexibleSpaceItem release];
- UIToolbar *toolbar = [[UIToolbar alloc] init];
- toolbar.barStyle = UIBarStyleBlackOpaque;
- [toolbar setItems:buttons animated:YES];
- [toolbar sizeToFit];