IOS-添加分段控件SegmentControl


添加分段控件

控件是一種小型的、自包含的UI組件,可以用在各種UI Kit類中。它們可以被附着在許多不同類型的對象之上,讓開發者可以在窗口中添加額外的功能。有一個控件在蘋果公司預裝的應用程序的導航欄中經常見到,這就是分段控件。

你會注意到,在許多預置的應用程序中,蘋果公司加入一些按鈕以便對顯示的信息做進一步分類。例如,iTunes WiFi Store應用程序的導航欄上就顯示着"最新發行"、"熱門金曲"、"風格流派"等按鈕。這些按鈕進一步划分了用戶的樂曲選擇方式。分段控件就適用於這種 情況:存在大量相似數據,最好用兩到三個按鈕對數據進行分類。

下面的例子配備了一個控件,令其顯示"全部"與"未接"電話:

  1. UISegmentedControl *segmentedControl = [ [ UISegmentedControl alloc ]  
  2.         initWithItems: nil ];  
  3.   segmentedControl.segmentedControlStyle =
    UISegmentedControlStyleBar;  
  4.    [ segmentedControl insertSegmentWithTitle: 
    @"All" atIndex: 0 animated: NO ];  
  5.    [ segmentedControl insertSegmentWithTitle: 
    @"Missed" atIndex: 1 animated: NO ]; 

一旦你創建好分段控件之后,就可以將其賦予一個視圖控制器的titleView導航屬性,從而將其顯示出來。這會使得標准的標題文字被替換成你的自定義視圖:

  1. self.navigationItem.titleView = segmentedControl

你應該還會希望這個類在用戶選擇新的分段時能立刻得到通知,以便讓它可以隨之改變,顯示新的信息。要做到這一點,可以用UIControl類的addTarget方法來指定一個方法,在控件的值改變時去調用:

  1. [ segmentedControl addTarget: self  
  2.         action: @selector(controlPressed:)  
  3.         forControlEvents: UIControlEventValueChanged  
  4. ]; 

在下面的例子中,一個名為controllerPressed的選擇子被指定為在目標self中應得到通知的方法。請在你的目標類中編寫這個例程,好處理值的變化:

  1. - (void) controllerPressed:(id)sender {  
  2.         int selectedIndex = [ segmentedControl selectedSegmentIndex ];  
  3.  
  4.         /* 添加代碼,處理值的變化 */  

分段控件中的每個按鈕,都被稱為一個段。調用控件自身的selectedSegment方法,就可以訪問被選中的段:

    1. - (void) controllerPressed:(id)sender {  
    2.         int selectedSegment = segmentedControl.selectedSegmentIndex;  
    3.         NSLog(@"Segment %d selected\n", selectedSegment);  
    4. }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM