gpt4 book ai didi

ios - 与 if/else 子句一起使用时,分段控件 tintColor 设置不正确

转载 作者:行者123 更新时间:2023-11-28 05:33:47 25 4
gpt4 key购买 nike

我有一个 UISegmentedController。当它的值改变时,执行这段代码:

    println(sender.selectedSegmentIndex)

var x = 0

if (sender.selectedSegmentIndex == 0)
{
println("set to \(self.yellow)")
sender.tintColor = self.yellow
println("right after \(sender.tintColor)")
x = 1
}
else if (sender.selectedSegmentIndex == 1)
{
println("set to \(self.green)")
sender.tintColor == self.green
println("right after \(sender.tintColor)")
x = 2
}
else if (sender.selectedSegmentIndex == 2)
{
println("set to \(self.blue)")
sender.tintColor == self.blue
println("right after \(sender.tintColor)")
x = 3
}

println("what it actually got set to: \(sender.tintColor), x is \(x)")

这是我连续点击每个片段时的输出:

0
set to UIDeviceRGBColorSpace 1 0.83 0.13 1
right after UIDeviceRGBColorSpace 1 0.83 0.13 1
what it actually got set to: UIDeviceRGBColorSpace 1 0.83 0.13 1, x is 1
1
set to UIDeviceRGBColorSpace 0.38 0.85 0.38 1
right after UIDeviceRGBColorSpace 1 0.83 0.13 1
what it actually got set to: UIDeviceRGBColorSpace 1 0.83 0.13 1, x is 2
2
set to UIDeviceRGBColorSpace 0.34 0.73 0.85 1
right after UIDeviceRGBColorSpace 1 0.83 0.13 1
what it actually got set to: UIDeviceRGBColorSpace 1 0.83 0.13 1, x is 3

您可以看到,设置后立即读取 tintColor 显示 selectedSegmentIndex 的错误值 1 和 2。

如果我将整个 if/else 转换为 switch() 语句,它会按预期工作。

另一个数据点,如果我在每个 if 子句中将 backgroundColor 设置为不同的颜色,背景会相应改变,但 tintColor 不会改变如上所述。

这是在 Xcode 6.0.1 的发布版本中运行的。怎么回事?

最佳答案

您正在测试是否相等,而不是分配它。您应该只使用一个等号:

sender.tintColor = self.green

我的猜测是,当您将它实现为开关时,您并没有犯同样的错误

关于ios - 与 if/else 子句一起使用时,分段控件 tintColor 设置不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26134538/

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