[英]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.