Ios UISegmentedControl当前是否不可用?

Ios UISegmentedControl当前是否不可用?,ios,colors,themes,uisegmentedcontrol,ios-darkmode,Ios,Colors,Themes,Uisegmentedcontrol,Ios Darkmode,我们的应用程序有一个“黑色”调色板,大部分是黑色或木炭背景。这在苹果控件中造成了一个主要问题,它忽略(甚至不提供)对文本和背景颜色的控制 UISegmentedControl就是一个特别好的例子。它是用难以辨认的、看似任意的文本/背景组合绘制的。这些控件在IB中都是使用完全相同的属性设置的,但是您永远不知道它们在一个视图控制器到下一个视图控制器之间是否清晰可见 在我们的应用程序中,大多数在“黑暗”模式下都可以,但“光明”模式是混乱的。我花了一天的时间在IB中以编程的方式尝试主题、UIAppear

我们的应用程序有一个“黑色”调色板,大部分是黑色或木炭背景。这在苹果控件中造成了一个主要问题,它忽略(甚至不提供)对文本和背景颜色的控制

UISegmentedControl就是一个特别好的例子。它是用难以辨认的、看似任意的文本/背景组合绘制的。这些控件在IB中都是使用完全相同的属性设置的,但是您永远不知道它们在一个视图控制器到下一个视图控制器之间是否清晰可见

在我们的应用程序中,大多数在“黑暗”模式下都可以,但“光明”模式是混乱的。我花了一天的时间在IB中以编程的方式尝试主题、UIAppearance和设置appearance。我受够了。有人知道如何保证这些东西的易读性吗

试试这个

let seg:UISegmentedControl = {
    let seg = UISegmentedControl()
    seg.insertSegment(withTitle: "tab 1", at: 0, animated: true)
    seg.insertSegment(withTitle: "tab 2", at: 1, animated: true)
    seg.selectedSegmentTintColor = .red   //you can replace the colours you want 
    seg.backgroundColor = .lightGray   //you can replace the colours you want 
    return seg
}()
结果

谢谢。不幸的是,selectedSegmentTintColor仅在iOS 13+中提供,我们不能要求客户提供。但是,您的建议确实让我仔细检查了我使用的颜色值,并发现在“亮”模式下将导航栏按钮的背景设置为浅灰色,在“暗”模式下设置为深灰色会产生良好的效果。在IB中创建的是易读的,但不是伟大的。现在就可以了。如果#可用(iOS 13.0,*){seg.selectedSegmentTintColor=.red}其他{seg.tintColor=.blue}谢谢!我知道如何检查操作系统版本中的功能可用性,但这无助于在iOS 13之前使所选片段清晰可见。