Jea*_*uys 5 cocoa-touch uisegmentedcontrol ios
我有一个UISegmentedControl
在UIView
我的popover中,我想在某些情况下禁用.在nib文件中使用Interface Builder设置分段控件.检查其IB"已启用"支票簿.
要禁用它,我写道:
self.segmentedControl.enabled = NO; // or YES when I want it enabled
Run Code Online (Sandbox Code Playgroud)
这在某种程度上起作用,从那里分段控制不会对触摸事件做出反应.
但是,没有任何图形反馈.我希望分段控件在禁用时变暗(灰色).我试图将其highlighted
属性设置NO
为也没有效果.
这应该是可能的,因为禁用UISegmentedControl
接口生成器产生我想要的调光效果.
但是,如果我这样做,我的代码就无法重新启用它:
self.segmentedControl.enabled = YES;
Run Code Online (Sandbox Code Playgroud)
不会启用它:即使它会再次开始接受触摸事件,它也会保持灰色.
这就好像IB"启用"复选框控制器两个属性:enabled
和dimmed
.但是dimmed
我找不到这个属性是什么?
我错过了什么?
这是在4.3 iPad模拟器中.
(请注意,我说的是整个控件,而不是它的各个部分).
编辑:我进一步调查了一下,我发现在IB中禁用分段控件也会将其alpha
属性设置为0.5.
添加时:
self.segmentedControl.alpha = 0.5; // or 1.0 if enabled
Run Code Online (Sandbox Code Playgroud)
我的应用现在似乎表现正常.
我是否认为设置enabled
属性还应该关注屏幕外观?
我发现这适用于每个细分市场:
[self.segmentedControl setEnabled:NO forSegmentAtIndex:0];
Run Code Online (Sandbox Code Playgroud)
效果很微妙,但确实会变灰.要做所有细分:
for(int index=0; index<self.segmentedControl.numberOfSegments; index++)
{
[self.segmentedControl setEnabled:NO forSegmentAtIndex:index];
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我遇到了完全相同的问题,但有一个有趣的转折。该界面的行为与您在运行iOS 4.3的iPad上的描述相同。但是,分段控件在运行iOS 5.0的iPad中确实变暗。因此,我认为这是Apple在iOS 5中修复的错误。
归档时间: |
|
查看次数: |
3924 次 |
最近记录: |