【问题标题】:adding segmented control with in the Navigation Bar在导航栏中添加分段控件
【发布时间】:2009-11-05 11:43:46
【问题描述】:

任何人都可以帮助提供有关如何在导航栏中添加分段控件的代码....我已经在某些应用程序上看到它并希望实现它

谢谢

【问题讨论】:

    标签: iphone ios cocoa-touch uinavigationbar uisegmentedcontrol


    【解决方案1】:

    您想使用 Interface Builder 还是仅在代码中使用?

    IB操作非常简单,只需将分段控件拖动到标题所在的导航栏上即可。标题将被分段控件替换。

    如果您想在代码中完成此操作,请参考this section of iPhone reference library。看来你需要将导航项的titleView属性设置为你的分段控件,它是UIView的子类,所以这是完全合法的。

    【讨论】:

      【解决方案2】:

      viewDidLoad:

      obj-c:

      NSArray *segmentTitles = @[
          @"segment1",
          @"segment2",
      ];
      
      UISegmentedControl *segmentedControl = [[UISegmentedControl alloc] initWithItems:segmentTitles];
      segmentedControl.selectedSegmentIndex = 0;
      segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
      // change the width from 400.0 to something you want if it's needed
      segmentedControl.frame = CGRectMake(0, 0, 400.0f, 30.0f);
      [segmentedControl addTarget:self action:@selector(segmentChanged:) forControlEvents:UIControlEventValueChanged];
      
      self.navigationItem.titleView = segmentedControl;
      

      迅速:

      let segmentTitles = [
          "segment1",
          "segment2",
      ]
      
      let segmentedControl = UISegmentedControl(items: segmentTitles)
      segmentedControl.selectedSegmentIndex = 0
      segmentedControl.autoresizingMask = UIViewAutoresizing.FlexibleWidth
      // change the width from 400.0 to something you want if it's needed
      segmentedControl.frame = CGRectMake(0, 0, 400.0, 30.0)
      segmentedControl.addTarget(self, action: "segmentChanged:", forControlEvents: UIControlEvents.ValueChanged)
      
      self.navigationItem.titleView = segmentedControl
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多