【发布时间】:2012-03-28 10:54:51
【问题描述】:
我在 iOS 5 中使用新的UIAppearance API 来为UISegmentedControl 设置自定义图形的样式。我需要能够在执行期间将某些段设置为有时禁用,但UIAppearance 方法似乎不允许我为UIControlStateDisabled 状态设置分隔线图像。
我在打电话:
[[UISegmentedControl appearance] setDividerImage:disabledSelectedImage
forLeftSegmentState:UIControlStateDisabled
rightSegmentState:UIControlStateSelected
barMetrics:UIBarMetricsDefault];
其中disabledSelectedImage 是来自此资源的可调整大小的图像:
然而,当我将左段设置为禁用 ([UISegmentedControl setEnabled:forSegmentAtIndex:]) 时,结果是这样的:
您可以清楚地看到UISegmentedControl 已默认使用UIControlStateNormal-UIControlStateNormal 分隔线图像。
使用UIControlStateDisabled 设置背景图像对我来说似乎非常高兴
[[UISegmentedControl appearance] setBackgroundImage:disabledImage
forState:UIControlStateDisabled
barMetrics:UIBarMetricsDefault];
(并尊重我在禁用状态下提供的图像)但不是分隔图像。有没有人遇到过这种情况或找到解决方案?
【问题讨论】:
-
这看起来像一个错误。我认为你应该在 bugreport.apple.com 上提交。
-
@jfortmann 我认为你是对的,我现在更改了流程以删除段而不是禁用它们。似乎
UIAppearanceAPI forUISegmentedControl中有很多错误
标签: ios ios5 uisegmentedcontrol uiappearance