0

UISegmentedControl是否可以通过第二次点击来取消选择一段?我目前正在使用一个UILongPressGestureRecognizer对象setSelectedSegmentIndexto UISegmentedControlNoSegment。但是,我宁愿在第二次点击时取消选择选定的段。

4

1 回答 1

0

另一种方法是子类化UISegmentedControl. 例如:

@interface ToggleSegmentedControl : UISegmentedControl
{
   NSUInteger selectedSegment;
}

@end


@implementation ToggleSegmentedControl

-(id)initWithFrame:(CGRect)frame 
{
   if (self = [super initWithFrame:frame])
   {
      selectedSegment = self.selectedSegmentIndex;
   }
   return self;
}

-(void)awakeFromNib 
{
  selectedSegment = self.selectedSegmentIndex;
}

-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{

   if( selectedSegment == self.selectedSegmentIndex && selectedSegment!=-1)
   {
     self.selectedSegmentIndex= UISegmentedControlNoSegment; 
     selectedSegment=-1; 
   } 
   else 
  { 
    selectedSegment=self.selectedSegmentIndex;
  }

}

@end

上述代码可能需要进一步调整以适应个别规格。

于 2012-07-10T04:39:53.063 回答