【发布时间】:2011-06-08 12:07:00
【问题描述】:
为什么 UISlider 视图设置为 0.5 时会忽略 alpha 视图?
代码:
for (int i = 0; i < 3; i++) {
UISlider *slider = [[[UISlider alloc]
initWithFrame:CGRectMake(0, i * 30, 200, 30)]
autorelease];
slider.alpha = 0.4 + (CGFloat)i / 10.0f;
[window addSubview:slider];
}
结果:
滑块的 alpha 值为 0.4、0.5 和 0.6。正如你所看到的,中间的 0.5 是完全不透明的。它似乎只发生在 alpha 0.5 中。已经测试了其他 UI 控制器,并且在 alpha 设置为 0.5 时它们可以正常工作。
在真实设备上使用 iOS 4.2 以及在模拟器中使用 iOS 3.2 和 4.2 进行复制。
顺便说一句,如果有人好奇我是如何以及为什么遇到这个问题的,那就是一个名为Slippy 的益智游戏的滑动方向垫配置。
【问题讨论】:
-
我自己花了几分钟玩弄它,它确实看起来/感觉像一个错误。我建议向 Apple 提交错误报告 - developer.apple.com/bugreporter
-
已经向苹果举报了。当我知道更多时会更新。
-
尝试不同的起始值:
0.41 + ...、0.3 + ...。这可能会对究竟是什么错误产生一些洞察(它是第二项,值 0.5,...?)另外,尝试添加if (i != 1) continue作为if语句的第一行,以查看其他滑块是否正在干扰中间的。关于“干涉”角度还有一件事浮现在脑海中:将它们分开 100 像素而不是 30 像素。 -
另外,删除
autorelease(这可能是一个愚蠢的建议,但由于您现在已经抓住了稻草,这是一个相当容易测试的“稻草”)。 -
是的,这绝对是
UISlider中的一个错误。
标签: iphone cocoa-touch uikit alpha uislider