Ios 无法对按钮执行内部补漆操作

Ios 无法对按钮执行内部补漆操作,ios,objective-c,iphone,uiview,uiviewcontroller,Ios,Objective C,Iphone,Uiview,Uiviewcontroller,我在界面生成器中有一个按钮(顺便说一句,使用NIB),我将控件从该按钮拖动到view controller.h文件,并将其称为“cancelReminder”(并将其设置为action): 这在.m文件中为我创建了一个方法,我只是在其中记录了一些内容,上面写着“cancel”来测试它 在界面生成器中,我控制从按钮拖动到文件所有者,以确保其连接到方法“cancelReminder” 这应该是正确的吗??不是 需要注意的是:“取消”按钮是视图的子视图,而该视图是主视图的子视图 这看起来像: 我知道

我在界面生成器中有一个按钮(顺便说一句,使用NIB),我将控件从该按钮拖动到view controller.h文件,并将其称为“cancelReminder”(并将其设置为action):

这在.m文件中为我创建了一个方法,我只是在其中记录了一些内容,上面写着“cancel”来测试它

在界面生成器中,我控制从按钮拖动到文件所有者,以确保其连接到方法“cancelReminder”

这应该是正确的吗??不是

需要注意的是:“取消”按钮是视图的子视图,而该视图是主视图的子视图

这看起来像:

我知道我不应该这样做,但只是为了测试行为,如果我控制从“取消”按钮拖动到文件所有者并选择“查看”,当我运行应用程序时,我会看到黑屏,我可以看到按钮及其工作…通过工作,我的意思是该方法正在响应:

我把它拿了回去,我试了试,这样也许有人能从这种行为中理解发生了什么

请帮我弄清楚:///以前发生过:(

真是一堆

我的视图加载:

- (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.delegate = self;
并使用委托方法:

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

.xib和文件所有者中的插座名称不相加,请查看您自己的屏幕截图-ScrollView:[Group1,done button等]、提醒视图以及拖动到文件所有者时显示的名称-createButton、slidingView、view。您确定您的类(HomeViewController)正确吗在文件的所有者属性检查器中设置?@Woodstock当然,告诉我你需要查看什么,我会上传it@Eugene是的,兄弟,这是因为我改变了它after@Woodstock我试图删除按钮,只设置了一个用于测试,但仍然不起作用,我认为问题与按钮是提醒器的子项有关视图和一些东西需要在那里设置,我不知道是什么…你能看到“用户交互启用”吗ReminderView上的字段已选中?我在哪里调用gestureRecognizer:?我尝试过这样做,但没有任何结果还将代理添加到@interface HomeViewController:UIViewController让我知道它是否有助于清除,在视图中的行下加载了tapRecognizer.numberOfTouchesRequired=1;我添加了tapRecognizer.delegate=self、 方法就在.m fileself.slidingView.frame=CGRectMake(0,0320,20);-您设置了高度20。我认为这就是问题所在。
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
    if ([touch.view isKindOfClass:[UIButton class]]){
        return NO;
    }
    return YES;
}