快速删除uisegmentControl默认的黑色backgroundColor吗?

问题描述 投票:0回答:1

我知道很多人问了这个问题,但是没有任何帮助。我的controller1从情节提要中展示了一个新的controller2。 Controler1的背景颜色为黑色。我自定义的segmentcontrol背景色和selectedTintColor效果很好,但始终总是先显示黑色背景色。我尝试了所有方法,但没有工作。在情节提要和代码中,所有这些都不是黑色。谢谢!

override func viewDidLoad() {
    let bgColor = uIColor. // my customized color)
    segmentControl.backgroundColor = bgColor
}

 override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    connectionSegmentControl.selectedSegmentIndex = 0
    toggleSegmentTintColor()
}

private func toggleSegmentTintColor() {
   // I set my customized selected tint color here, it works.
}
swift uisegmentedcontrol
1个回答
1
投票

如果您在viewDidAppear中执行此操作,则为时已晚:视图已显示在屏幕上。破解方法是在viewDidlaod或viewWillAppear中。正确的方法是在应用启动时使用UIAppearance代理为全局设置对象的颜色:

UISegmentedControl.appearance().tintColor = UIColor.clear

您还可以通过在根窗口上设置整个应用程序的颜色来设置其颜色,但它不仅会影响分段控件。

© www.soinside.com 2019 - 2024. All rights reserved.