iPhone NavigationBar和UIToolbar基礎

navigation bar 分爲三個部分,左按鈕,右按鈕和中間的View.

在Controller中可以通過以三個方式來引用:

 

  • self . navigationItem. titleView
  • self . navigationItem. leftBarButtonItem
  • self . navigationItem. rightBarButtonItem
左右按鈕可以使用UIBarButtonItem來構造. 他默認有很多種按鈕可攻選擇:
Java代碼 
  1. typedef  enum  {  
  2.     UIBarButtonSystemItemDone,  
  3.     UIBarButtonSystemItemCancel,  
  4.     UIBarButtonSystemItemEdit,    
  5.     UIBarButtonSystemItemSave,    
  6.     UIBarButtonSystemItemAdd,  
  7.     UIBarButtonSystemItemFlexibleSpace,  
  8.     UIBarButtonSystemItemFixedSpace,  
  9.     UIBarButtonSystemItemCompose,  
  10.     UIBarButtonSystemItemReply,  
  11.     UIBarButtonSystemItemAction,  
  12.     UIBarButtonSystemItemOrganize,  
  13.     UIBarButtonSystemItemBookmarks,  
  14.     UIBarButtonSystemItemSearch,  
  15.     UIBarButtonSystemItemRefresh,  
  16.     UIBarButtonSystemItemStop,  
  17.     UIBarButtonSystemItemCamera,  
  18.     UIBarButtonSystemItemTrash,  
  19.     UIBarButtonSystemItemPlay,  
  20.     UIBarButtonSystemItemPause,  
  21.     UIBarButtonSystemItemRewind,  
  22.     UIBarButtonSystemItemFastForward,  
  23.     UIBarButtonSystemItemUndo,      // available in iPhone 3.0   
  24.     UIBarButtonSystemItemRedo,      // available in iPhone 3.0   
  25. } UIBarButtonSystemItem;  
 
通過構造初始化可以設置這些按鈕的種類:
Java代碼 
  1. [[[UIBarButtonItem alloc]   
  2.              initWithBarButtonSystemItem:UIBarButtonSystemItemPlay  
  3.              target:nil action:NULL] autorelease];  
 
除此之外,UIBarButtonItem還有幾種外觀風格:
Java代碼 
  1. typedef  enum  {  
  2.     UIBarButtonItemStylePlain,    // shows glow when pressed   
  3.     UIBarButtonItemStyleBordered,  
  4.     UIBarButtonItemStyleDone,  
  5. } UIBarButtonItemStyle;  
 
當然按鈕有風格之分, navigation bar 也有幾種可選風格:
Java代碼 
  1. typedef  enum  {  
  2.     UIBarStyleDefault          = 0 ,  
  3.     UIBarStyleBlack            = 1 ,  
  4.       
  5.     UIBarStyleBlackOpaque      = 1  // Deprecated. Use UIBarStyleBlack   
  6.     UIBarStyleBlackTranslucent = 2 // Deprecated. Use UIBarStyleBlack and set the translucent property to YES   
  7. } UIBarStyle;  
 
通過:navigationController. navigationBar. barStyle =  UIBarStyleBlackTranslucent這樣的語句就可以設置了.

這個UIBarStyle的風格還適用於UIToolbar. 並且UIToolBar中也是可以放置UIBarButtonItem的.
Java代碼 
  1. NSMutableArray *buttons = [[NSMutableArray alloc] initWithCapacity: 4 ];  
  2.       
  3.     UIBarButtonItem *flexibleSpaceItem;  
  4.     flexibleSpaceItem = [[[UIBarButtonItem alloc]   
  5.                           initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace  
  6.                           target:nil action:NULL] autorelease];   
  7.     [buttons addObject:flexibleSpaceItem];  
  8.     [flexibleSpaceItem release];  
  9.       
  10.     UIBarButtonItem *item;  
  11.     item = [[UIBarButtonItem alloc]   
  12.             initWithImage:[UIImage imageNamed:@"down.png" ]  
  13.             style:UIBarButtonItemStylePlain   
  14.             target:self   
  15.             action:@selector (decrement:)];  
  16.     [buttons addObject:item];  
  17.     [item release];  
  18.       
  19.     item = [[UIBarButtonItem alloc]   
  20.             initWithImage:[UIImage imageNamed:@"up.png" ]  
  21.             style:UIBarButtonItemStylePlain target:self   
  22.             action:@selector (increment:)];  
  23.     [buttons addObject:item];  
  24.     [item release];  
  25.       
  26.     item = [[[UIBarButtonItem alloc]   
  27.              initWithBarButtonSystemItem:UIBarButtonSystemItemPlay  
  28.              target:nil action:NULL] autorelease];    
  29.     [buttons addObject:item];  
  30.     [item release];  
  31.       
  32.       
  33.     flexibleSpaceItem = [[[UIBarButtonItem alloc]   
  34.                           initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace  
  35.                           target:nil action:NULL] autorelease];   
  36.   
  37.     [buttons addObject:flexibleSpaceItem];  
  38.     [flexibleSpaceItem release];  
  39.       
  40.       
  41.     UIToolbar *toolbar = [[UIToolbar alloc] init];   
  42.     toolbar.barStyle = UIBarStyleBlackOpaque;  
  43.     [toolbar setItems:buttons animated:YES];  
  44.     [toolbar sizeToFit];  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章