【问题标题】:UISegmentedControl text programmaticallyUISegmentedControl 文本以编程方式
【发布时间】:2012-04-06 14:06:49
【问题描述】:

我使用界面生成器(来自情节提要)创建了一个包含两个段的 UISegmentedControl,但我想以编程方式设置这两个段的文本。我想这样做是因为我对所有按钮、标签、标题等都使用了 NSLocalizedString。 我在界面生成器中创建所有内容,然后以编程方式添加文本。 我已经设法使每个项目都以这种方式工作,但我找不到将文本添加到 UISegmentedControl 的方法。

有没有办法做到这一点? 我正在尝试使用以下内容,但由于已在界面生成器中创建了分段控件,因此它不起作用。

[segmentedControl initWithItems:[NSArray arrayWithObjects:NSLocalizedString(@"Title 1", @"Title 1"),NSLocalizedString(@"Title 2", @"Title 2"), nil]];

非常感谢

【问题讨论】:

    标签: iphone objective-c ios ipad


    【解决方案1】:

    使用setTitle:forSegmentAtIndex: 将标题分配给分段控件的分段。

    希望这会对你有所帮助。

    【讨论】:

      【解决方案2】:
      [segmentedControl setTitle:<YourLocalizedString> forSegmentAtIndex:0];
      

      【讨论】:

      • segmentedControl.setTitle("stuff", forSegmentAtIndex: 0) - 快速版本
      • 谢谢...但是,另一个愚蠢的 Apple 约定最好是 segmentedControl.titles = ["title","title","title"]imo
      【解决方案3】:

      使用 SWIFT 4 的人的正确答案是

      segmentedControl.setTitle("Your Title", forSegmentAt: 0)
      

      【讨论】:

        【解决方案4】:

        更新:

        使用下面的简单代码以编程方式设置 UISegmentControl 标题;

        //.h 文件:

        @property (weak, nonatomic) IBOutlet UISegmentedControl *segmentControl;
        

        // .m 文件:

        - (void)viewDidLoad {
        
            [super viewDidLoad];
        
             [self.segmentControl setTitle:@"Love It" forSegmentAtIndex:0];
             [self.segmentControl setTitle:@"Hate It" forSegmentAtIndex:1];        
             [self.segmentControl setTitle:@"Ehh" forSegmentAtIndex:2];
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-12-14
          • 1970-01-01
          • 1970-01-01
          • 2012-07-23
          • 2011-07-13
          • 2012-05-17
          • 1970-01-01
          相关资源
          最近更新 更多