嵌套视图按钮未单击

Posted

技术标签:

【中文标题】嵌套视图按钮未单击【英文标题】:Nested Views-button is not clicking 【发布时间】:2010-03-26 11:45:28 【问题描述】:

我有一个视图,其中添加了一个日期选择器和一个按钮。 还有另一个视图将上述视图添加为子视图。 但是像 touchesBegan 和按钮的操作这样的事件并没有在子视图上被点击。 请帮忙

父视图的代码是:

iTagDatePicker *dt=[[iTagDatePicker alloc] initWithFrame:CGRectMake(0.0, 180.0, 320.0, 240.0)];
    //dt.userInteractionEnabled=YES;
    //[dt becomeFirstResponder];

    dt.backgroundColor=[UIColor clearColor];
    [UIView beginAnimations:@"animation" context:nil];
    [UIView setAnimationDuration:1.0];
    CGPoint cntr;
    cntr.x=160.0;
    cntr.y=420.0;
    dt.center=cntr;
    [self.view addSubview:dt];
    self.view.userInteractionEnabled=YES;
    CGPoint cntr1;
    cntr1.x=160.0;
    cntr1.y=158.0;
    dt.center=cntr1;
    [UIView commitAnimations];
    [dt release];

子类的代码是:

- (id)initWithFrame:(CGRect)frame 
    if (self = [super initWithFrame:frame]) 
        dtPicker=[[UIDatePicker alloc] initWithFrame:CGRectMake(frame.origin.x, frame.origin.y, 320.0, 216.0)];
        dtPicker.datePickerMode=UIDatePickerModeDate;
        dtPicker.date=[NSDate date];
        [self addSubview:dtPicker];

        btn=[[UIButton buttonWithType:UIButtonTypeDetailDisclosure]retain];
        btn.frame=CGRectMake(110.0, 400.0, 100.0, 20.0);
        [btn setTitle:@"Done" forState:UIControlStateNormal];
        btn.userInteractionEnabled=YES;
        [btn becomeFirstResponder];
        [btn addTarget:self action:@selector(SelectedVal:) forControlEvents:UIControlEventTouchDown];
        [self addSubview:btn];


    
    return self;

按钮不工作

【问题讨论】:

【参考方案1】:

子类化父视图并将触摸传递给其子视图。

【讨论】:

嗨。我已经添加了代码。你能详细说明我做错了什么吗? 我不知道。但是,如果您想正确执行此操作,请将父 UIView 子类化,为 UIButton 和日期选择器对象添加属性,然后将触摸传递给这些属性。

以上是关于嵌套视图按钮未单击的主要内容,如果未能解决你的问题,请参考以下文章

如何快速管理嵌套的视图控制器视图大小?

选择器视图未出现在第一次尝试单击按钮时

按钮明显单击但事件未注册

在屏幕下方加载时,UITableViewCell 按钮单击未注册

html表响应未显示在按钮单击jquery函数的MVC视图中

如何通过单击按钮转到另一个视图