关于iPhone上的UISegmentedControl类的快速问题。
希望有些人可能已经注意到,在具有2个段的默认状态下,即使用户点击当前选择的段,分段控件仍会切换。
我在应用中看到了UISegmentedControls否定了这种行为,并且在用户按下所选段时不切换。即,Apple的iTune Store应用程序。
是否有一种简单的方法可以防止我忽视这种行为,或者我是否需要在valueChanged中写入一些逻辑?
我一直在尝试禁用当前选定的细分并启用未选择的细分,但这似乎会在我不希望的情况下改变控件的外观。
有什么想法吗?
答案 0 :(得分:8)
查看 UISegmentedControl.h 头文件(一种简单的方法是在XCode中双击“UISegmentedControl”并按住Command键。)
在那里,您会在 _segmentedControlFlags 结构中看到许多项目。如果你在UISegmentedControl上创建一个类别,你可以操纵任何这些元素 - 包括 dontAlwaysToggleForTwoSegments ,正如你可能猜到的那样,你正在寻找它。
由于这在API标题中有记录(尽管不在实际文档中),因此使用它应该是非常安全的。
答案 1 :(得分:4)
此默认行为已在3.0 API中更改。
答案 2 :(得分:4)
在3.0中,“ _segmentedControlFlags ”已更改为“瞬间”属性,该属性仍可在 UISegmentedControl.h 中找到头文件。
答案 3 :(得分:1)
通过类别访问_segmentedControlFlags被视为使用私有API,因此违反了Apple的许可协议,正如我今天必须学习的那样。到目前为止,我认为,类别是一种语言功能,可以修复别人可怕的课程设计...