iOS 中的分段条跨越不同大小 类

Segment Bar in iOS accross different Size classes

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

似乎不​​可能完全单独使用故事板来完成这种功能,但是在 viewDidLoad 中组合 this and this 可能会得到你想要的

您可以通过以编程方式添加 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];