IOS導覽列的使用方法,IOS導覽列使用方法

來源:互聯網
上載者:User

IOS導覽列的使用方法,IOS導覽列使用方法

本文是使用純程式碼實現一個導覽列的效果。單擊按鈕並且產生事件。基本思路是:

1.建立一個導覽列(UINavigationBar對象)

2.建立一個導覽列集合(UINavigationItem對象)

3.建立一個左邊按鈕、一個右邊按鈕(UIBarButtonItem對象),並實現對應的事件方法

4.將導覽列集合添加到導覽列中,設定動畫關閉

5.把左右兩個按鈕添加到導覽列集合中去

6.在視圖中顯示當前建立的導覽列

 

具體的實現代碼如下:

ViewController.h檔案中的代碼不用改變,如下所示:

 

[cpp] view plaincopy
  1. #import <UIKit/UIKit.h>  
  2.   
  3. @interface ViewController : UIViewController  
  4.   
  5. @end  

 

ViewController.m檔案中的代碼:

 

[cpp] view plaincopy
  1. #import "ViewController.h"  
  2.   
  3. @interface ViewController ()  
  4.   
  5. @end  
  6.   
  7. @implementation ViewController  
  8.   
  9. - (void)viewDidLoad  
  10. {  
  11.     [super viewDidLoad];  
  12.     // Do any additional setup after loading the view, typically from a nib.  
  13.       
  14.     //建立一個導覽列  
  15.     UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];  
  16.     //建立一個導覽列集合  
  17.     UINavigationItem *navItem = [[UINavigationItem alloc] initWithTitle:nil];  
  18.     //在這個集合Item中添加標題,按鈕  
  19.     //style:設定按鈕的風格,一共有三種選擇  
  20.     //action:@selector:設定按鈕的點擊事件  
  21.     //建立一個左邊按鈕  
  22.     UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"左邊" style:UIBarButtonItemStyleBordered target:self action:@selector(clickLeftButton)];  
  23.     //建立一個右邊按鈕  
  24.     UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"右邊" style:UIBarButtonItemStyleDone target:self action:@selector(clickRightButton)];  
  25.       
  26.     //設定導覽列的內容  
  27.     [navItem setTitle:@"淩淩漆"];  
  28.       
  29.     //把導覽列集合添加到導覽列中,設定動畫關閉  
  30.     [navBar pushNavigationItem:navItem animated:NO];  
  31.       
  32.     //把左右兩個按鈕添加到導覽列集合中去  
  33.     [navItem setLeftBarButtonItem:leftButton];  
  34.     [navItem setRightBarButtonItem:rightButton];  
  35.       
  36.     //將標題列中的內容全部添加到主視圖當中  
  37.     [self.view addSubview:navBar];  
  38.       
  39.     //最後將控制項在記憶體中釋放掉,以避免記憶體泄露  
  40.     [navItem release];  
  41.     [leftButton release];  
  42.     [rightButton release];  
  43. }  
  44.   
  45. -(void)showDialog:(NSString *)str  
  46. {  
  47.     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"這是一個對話方塊" message:str delegate:self cancelButtonTitle:@"確定" otherButtonTitles: nil];  
  48.     [alert show];  
  49.     [alert release];  
  50. }  
  51.   
  52. -(void) clickLeftButton  
  53. {  
  54.     [self showDialog:@"點擊了導覽列左邊按鈕"];  
  55. }  
  56.   
  57. -(void) clickRightButton  
  58. {  
  59.     [self showDialog:@"點擊了導覽列右邊按鈕"];  
  60. }  
  61.   
  62. - (void)viewDidUnload  
  63. {  
  64.     [super viewDidUnload];  
  65.     // Release any retained subviews of the main view.  
  66. }  
  67.   
  68. - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation  
  69. {  
  70.     return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);  
  71. }  
  72.   
  73. @end  

什iOS 應用的導覽列(nav bar)設計特別且出色優秀?

整體風格非常簡潔,和 Metro 一樣,細細的字型在 Jetsetter 的導航裡也扮演了很重要的角色。他的導覽列巧妙地結合了產品的 Logo (各欄目首頁時顯示)、載入時的菊花(轉場時顯示)以及返回欄目首頁的按鈕,全都是黑色的圓圈為背景,並且過渡的時候有平滑的翻轉動效。500px一直不太喜歡下拉框這個控制項,把功能隱藏在一個未知菜單裡面給我的感覺不是很好。但在 500px 這個 App 的導覽列上使用下拉框我卻覺得是個很好的設計。因為他抓住了使用者進這個 App 就是看圖為主的需求,把繁雜但又不是特別必須的導航都放到了頂部比較細的導覽列,點擊後以下拉框的形式出現,比起傳統的導覽列加 Tab bar 要稍微節省一點空間,保證了使用者一開啟 App 就是撲面而來的美圖。而這個導覽列的形式(Logo / 返回 + 當前頁類型表徵圖 / 頭像 + 標題文本)在後面的詳細頁面也貫徹得很統一。
Linkedin最大的特色是「小三角」,不管在哪一級頁面,只要認準了 Logo 或者標題下面這個小三角,按一下就能回首頁。
SparrowSparrow 的導覽列裡也有小三角的設計,不過這是在有對話的郵件介面標題下方,功能也和 Linkedin 不一樣,他是用來切換當前郵件介面和該對話記錄列表的。而在郵件清單介面也就是首頁裡,導覽列支援橫滑的手勢 / 點擊切換 Inbox、Unread 和 Starred。初看的時候覺得 Inbox 下面那三個小點太過小了,實在看不清,但一想就明白了,總共就三項,不擔心使用者找不到自己在哪裡,更主要的功能反而是讓習慣了這種形式的使用者知道標題列這裡是支援手勢滑動的。
Gmail這貨的導覽列特別之處是。。。能讓你有一種用 iPhone 跑 Android 應用的趕腳,你以為你個小樣從本來的三個點到現在套一件三角馬甲我就不認識你了嗎?哈哈哈
 
ios613的地圖怎使用導航

你說的什麼導航 內建的地圖導航還是第三方的
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.