关于iPhone上的UISegmentedControl类的一个快速问题。
希望有些人已经注意到,在2个段的默认状态下,即使用户点击当前选择的段,分段控件仍然会切换。
我在应用程序中看到过UISegmentedControls,它们否定了这种行为,并且当用户按下选定的部分时不会切换。也就是说,苹果的iTune商店应用程序。
有没有一种简单的方法可以防止我忽略的这种行为,或者我需要在valueChanged中写入一些逻辑?
我一直在尝试禁用当前选中的分段,并启用未选中的分段,但这似乎会在我不想要的时候改变控件的外观。
有什么想法吗?
发布于 2009-03-11 23:23:17
查看UISegmentedControl.h头文件(一种简单的方法是在按住Command的同时双击XCode中的"UISegmentedControl“)。
在其中,您将看到_segmentedControlFlags结构中的许多项。如果你在UISegmentedControl上创建一个类别,你就可以操作这些元素中的任何一个--包括dontAlwaysToggleForTwoSegments,正如你可能猜到的名字一样,它就是你正在寻找的东西。
由于这是在API头中记录的(尽管不是在实际文档中),所以使用它应该是非常安全的。
发布于 2009-04-18 02:20:55
此默认行为在3.0 API中已更改。
发布于 2009-07-20 20:59:30
在3.0中,"_segmentedControlFlags“已更改为”瞬间“属性,该属性仍然可以在UISegmentedControl.h头文件中找到。
https://stackoverflow.com/questions/633924
复制相似问题