我可以维持UISegmentViewControl段的选定状态吗? 即使用户选择另一个段,即可保持一个段被选中? 我似乎找不到任何可以做到这一点的任何东西!!
答案 0 :(得分:0)
这不是开箱即用的。 (见How can I enable multiple segments of a UISegmentedControl to be selected?。)
您可以尝试this code之类的功能来提供类似的功能。
答案 1 :(得分:0)
我找到了一种方法。我在每个段后面放置了深色图像并将其隐藏属性设置为true。然后我递减了uisegmented控件的alpha值。然后在代码中单击一个段时我转动了可见性相应地打开或关闭,因此选择了多个片段
答案 2 :(得分:0)
另一种解决方案可能是使用类别:
#import <UIKit/UISegmentedControl.h>
@interface UISegmentedControl (MultiSelect)
@end
这样做,您原则上可以访问UISegmentedControl的私有成员变量。特别是,您可以访问包含按钮段的数组,您可以通过覆盖setSelectedSegmentIndex:selectedSegmentIndex来根据需要进行操作:。但是,由于各种原因,不应直接访问声明为private的属性,请参阅{ {3}}。正如在那里建议的那样,你可以更好地滥用KVC。因此,实现可能如下所示:
@implementation UISegmentedControl (MultiSelect)
- (void)setSelectedSegmentIndex:(NSInteger)selectedSegmentIndex {
NSMutableArray *pArraySegments = [self valueForKey:@"segments"];
if ((pArraySegments) && (selectedSegmentIndex >= 0) && (selectedSegmentIndex < [pArraySegments count])) {
UIButton *pSegment = (UIButton*)[pArraySegments objectAtIndex:selectedSegmentIndex];
pSegment.selected ? (pSegment.selected = NO) : (pSegment.selected = YES);
}
}
@end
这对我有用。但是,由于我现在阅读this link,我不太确定这是否真的是一种有效的方法。