• 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. }
  • 相关阅读:
    POJ 2236 Wireless Network(并查集)
    POJ 2010 Moo University
    POJ 3614 Sunscreen(贪心,区间单点匹配)
    POJ 2184 Cow Exhibition(背包)
    POJ 1631 Bridging signals(LIS的等价表述)
    POJ 3181 Dollar Dayz(递推,两个long long)
    POJ 3046 Ant Counting(递推,和号优化)
    POJ 3280 Cheapest Palindrome(区间dp)
    POJ 3616 Milking Time(dp)
    POJ 2385 Apple Catching(01背包)
  • 原文地址:https://www.cnblogs.com/tx8899/p/2537020.html
Copyright © 2020-2023  润新知