gpt4 book ai didi

ios - UIImageView.appearance 覆盖了 UISegmentedControl.appearance

转载 作者:可可西里 更新时间:2023-11-01 00:21:24 27 4
gpt4 key购买 nike

我一直在尝试使用外观代理 API 将一些默认颜色应用于某些控件,但我遇到了问题。

当我使用诸如...之类的东西将色调颜色应用到 UISegmentedControl

UISegmentedControl.appearance().tintColor = UIColor.red

它生成这个...

Red Tint

一切都很好,但是当我添加...

UIImageView.appearance().tintColor = UIColor.green 

它变成了...

Green Tint

澄清一下,我的代码中有这两行

UISegmentedControl.appearance().tintColor = UIColor.red
UIImageView.appearance().tintColor = UIColor.green

无论我以什么顺序调用它们,结果都是一样的,UIImageView 属性覆盖了 UISegmentedControl

我花了半天多的时间试图找到解决这个问题的方法,但似乎找不到任何有效的方法。

运行 Xcode 8.2、iOS 10、Swift 3

我做错了什么,我该如何解决?

最佳答案

我不确定这一点,但我猜想,UISegmentedControl 使用 UIImageView 创建段,即我们在分段控件中看到的段是 UIImageViews 而不是 UIViewsUISegmentedControl 甚至有为特定片段设置图像的方法。

如果以上为真,我们可以使用 UIAppearance 的 appearanceWhenContainedIn API 来设置 ImageView 色调颜色,如下所示:

UIImageView.appearance(whenContainedInInstancesOf: [UISegmentedControl.self]).tintColor = UIColor.red
UIImageView.appearance().tintColor = UIColor.green

关于ios - UIImageView.appearance 覆盖了 UISegmentedControl.appearance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42062659/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com