2016-10-19 72 views
0

如果你有這些控件的一個自定義子類,你要更改>默認操作,附加手勢識別我無法理解在Event Handling Guide for iOS-Interacting with Other User Interface Controls變化UIButton的默認操作

表達直接到控件而不是>父視圖。然後,手勢識別器首先接收觸摸事件。

任何人都可以舉一些例子嗎? thx

+0

聲明看起來很清楚。明確添加一個手勢識別器到您的特定控件。我不確定爲什麼它甚至必須是自定義控件。我只是試圖做到這一點,看看它是否有效。 –

回答

0

子類UIButton附加手勢識別器。

在CustomButton.m

#import "CustomButton.h" 

@implementation CustomButton 

- (instancetype)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 

     UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] 
               initWithTarget:self action:@selector(handleTap)]; 
     tapGesture.numberOfTapsRequired = 2; 
     [self addGestureRecognizer:tapGesture]; 
    } 
    return self; 
} 

- (void)handleTap 
{ 
    NSLog(@"Button tapped twice"); 
} 

在你的ViewController啓動按鈕,並添加爲子視圖

#import "ViewController.h" 
#import "CustomButton.h" 

@interface ViewController() 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 

    CustomButton *customButton = [[CustomButton alloc] initWithFrame:CGRectMake(100.0f, 100.0f, 150.0f, 100.0f)]; 
    [customButton setTitle:@"Tap Twice" forState:UIControlStateNormal]; 
    customButton.backgroundColor = [UIColor grayColor]; 
    [self.view addSubview:customButton]; 

} 

一般單tap.we按鈕作品加入改變了按鈕的默認行爲輕擊手勢識別器和輕拍數量減去2.

+0

thx很多!我誤解了「父視圖」,我認爲它是按鈕(orz) – Tom