簡體   English   中英

無法為按鈕執行內部動作修飾

[英]Cant perform touch-up inside action for a button

我的界面構建器中有一個按鈕(順便使用nib),我控制從按鈕拖動到視圖控制器.h文件並將其命名為“cancelReminder”(並將其設置為動作):

@interface HomeViewController : UIViewController 

@property (strong, nonatomic) IBOutlet UILabel *homeLabel;

@property (strong, nonatomic) IBOutlet UIScrollView *myScrollView;

- (IBAction)cancelReminder:(id)sender;

@end

這在.m文件中創建了一個方法,我只是在那里用“取消”來測試它。

在界面構建器中,我控制從按鈕拖動到文件所有者,以確保其連接到方法“cancelReminder”。

這應該是正確的?? 不是。

值得一提的是:取消按鈕是視圖的子節點,此視圖是主視圖的子節點。

這看起來像這樣:

在此輸入圖像描述

我知道我不應該這樣做但只是為了測試行為,如果我控制從取消按鈕拖動到文件所有者並選擇視圖,當我運行應用程序時,我看到黑屏,我可以看到按鈕及其工作...通過工作我的意思是該方法是響應:

在此輸入圖像描述

我把它拿回來,我試了一下,所以也許有人會從這種行為中理解發生了什么。

請幫我解決這個問題:///之前發生過:(

比一堆!!

我的觀點DiLoad:

- (void)viewDidLoad {

    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.
    self.slidingView.hidden = YES;
    // black BG to make the background darker when the reminder view is sliding in
    self.reminderBG.hidden = YES;
    self.navigationController.navigationBarHidden = YES;
    self.homeLabel.font = [UIFont fontWithName:@"Candara-Bold" size:40];
    self.homeLabel.text = stackTableViewController.currentTarget;
    self.homeLabel.lineBreakMode = NSLineBreakByWordWrapping;
    self.homeLabel.numberOfLines = 0;
    self.myScrollView.delegate = self;

    //setting up the button bounds
    self.buttonBounds = self.createButton.bounds;

    UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapResponder)];

    tapRecognizer.numberOfTapsRequired =1;
    tapRecognizer.numberOfTouchesRequired = 1;

    [self.homeLabel addGestureRecognizer:tapRecognizer];
}

和我的動作表方法,將提醒視圖滑入:

- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

    if (buttonIndex == 0) {

    } else if (buttonIndex == 1) {

        self.reminderBG.hidden = NO;
        self.slidingView.hidden = NO;
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration:0.3];
        [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
        self.slidingView.frame = CGRectMake(0,0,320,20);
        self.view.frame = CGRectMake(0,0,320,460);
        [UIView commitAnimations];
    }
}

在此輸入圖像描述

問題可能是由手勢識別器引起的。 嘗試在創建tapRecognizer后添加委托:

tapRecognizer.delegate = self;

並使用委托方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ([touch.view isKindOfClass:[UIButton class]]){
        return NO;
    }
    return YES;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM