UISegmentedControl文本以编程方式

use*_*777 62 iphone objective-c ipad ios

我使用界面构建器(来自storyboard)创建了一个带有两个段的UISegmentedControl,但我想以编程方式设置两个段的文本.我想这样做是因为我使用NSLocalizedString来处理我的所有按钮,标签,标题等.我在界面构建器中创建了所有内容,然后以编程方式添加文本.我已经设法使每个项目以这种方式工作,但我找不到向UISegmentedControl添加文本的方法.

有没有办法做到这一点?我试图使用以下,但因为已经在界面构建器中创建了分段控件,它不起作用.

[segmentedControl initWithItems:[NSArray arrayWithObjects:NSLocalizedString(@"Title 1", @"Title 1"),NSLocalizedString(@"Title 2", @"Title 2"), nil]];
Run Code Online (Sandbox Code Playgroud)

非常感谢

sha*_*irv 188

[segmentedControl setTitle:<YourLocalizedString> forSegmentAtIndex:0];
Run Code Online (Sandbox Code Playgroud)

  • segmentedControl.setTitle("stuff",forSegmentAtIndex:0) - swift版本 (4认同)
  • 谢谢...但是,另一个愚蠢的苹果约定最好是 `segmentedControl.titles = ["title","title","title"]` imo (2认同)

Obl*_*ely 9

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

希望这会对你有所帮助.


Kev*_*ngh 9

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

segmentedControl.setTitle("Your Title", forSegmentAt: 0)
Run Code Online (Sandbox Code Playgroud)