iOS中的Segment Bar具有不同的Size类

时间:2016-01-15 06:23:22

标签: ios iphone ipad uisegmentedcontrol size-classes

我正在使用UISegmentController(默认由iOS提供)。我想显示iPad或iPhone横向视图的文字。在iPhone的情况下,我想在同一段栏中显示图标(而不是文本)。 可能吗?如果是,那么如何在故事板中或以编程方式实现这一目标?

2 个答案:

答案 0 :(得分:1)

您可以通过以编程方式添加UISegmentedControl来实现此目的。 控制器viewWillAppear方法中的代码如下,

- (void)viewWillAppear:(BOOL)animated {
UISegmentedControl * cntrl = [[UISegmentedControl alloc]  initWithItems:@[[UIImage imageNamed:@"Circle"],@"2"]];
cntrl.frame = CGRectMake(30, 100, 200, 50);
[self.view addSubview:cntrl];
}

使用上面的代码,我们创建了段控件,第一段中有一个图像,第二段中有文本。查看随附的屏幕截图。

使用以下代码检查设备是iPad还是iPhone

-(BOOL) isiPad {
return UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad;
}

根据设备类型,自定义分段控制。

对于现有的段控件,当您想要设置图像时,

[cntrl setImage:[UIImage imageNamed:@"Tick"] forSegmentAtIndex:0];

通过指定要在特定segmentIndex上设置的图像来使用上述方法。

当您想要在特定索引处设置文本时,请使用

    [cntrl setTitle:@"Hello" forSegmentAtIndex:0];

答案 1 :(得分:0)

似乎不可能完全单独使用故事板来执行此类功能,但是viewDidLoad中thisthis的组合可能会让您想要