0

UISegmentedControl2 回目のタップでのセグメントの選択を解除することはできますか? 私は現在 to のオブジェクトを使用していUILongPressGestureRecognizerます。ただし、2回目のタップで選択したセグメントの選択を解除したいと思います。setSelectedSegmentIndexUISegmentedControlNoSegment

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 に答える