gpt4 book ai didi

ios - 调用自定义 View 时 UIButton 不可单击

转载 作者:可可西里 更新时间:2023-11-01 05:04:33 25 4
gpt4 key购买 nike

我是 iPhone 开发的新手,我需要帮助来理解下面的内容,因为我能够使用以下内容创建新 View

UIView *newView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 80, 30)]; 
newView.backgroundColor=[UIColor clearColor];
UIButton *newViewBtn=[UIButton buttonWithType:UIButtonTypeRoundedRect];


newViewBtn.frame = CGRectMake(newView.frame.origin.x+5,
newView.frame.origin.y+5,60,20);
[newView addSubview:newViewBtn];
[self.view addSubview:newView];

以上代码没有任何问题。但是当我尝试使用以下方法创建 View 时, View 创建正常,但 View 上的按钮不可点击。

int randNumX = arc4random() % 150;
int randNumY = arc4random() % 200;
UIView newView=[[UIView alloc]init];
newView.frame =CGRectMake(randNumX, randNumY, 80, 30);

newView.backgroundColor=[UIColor clearColor];

UIButton *newViewBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
newViewBtn.frame = CGRectMake(newView.frame.origin.x+5
,newView.frame.origin.y+5,60,20);
[newView addSubview:newViewBtn];
[self.view addSubview:newView];

如果更改以下代码,还有另一种情况

 newViewBtn.frame = CGRectMake(newView.frame.origin.x+5
,newView.frame.origin.y+5,60,20);

使用下面的代码应用程序崩溃

 newViewBtn.frame =CGRectMake(randNumX+5,randNumY+5,60,20);

任何帮助将不胜感激,提前致谢。

我已经添加了以下代码

     newViewBtn addTarget:self action:@selector(btnclick:)forControlEvents:UIControlEventTouchUpInside];

-(void)btnclick:(id)sender
{
//my code
}

它在第一种情况下有效:

我主要关心的是当绘制新 View 时,为什么这个 View 上的按钮不可点击

最佳答案

将自定义 subview 添加到 UIButton 时,您必须关闭 userInteractionEnabled 属性。

customView.userInteractionEnabled = NO;

然后添加到您的按钮。

[customButton addSubView:customView];

否则您的自定义 View 会拦截按钮之前的触摸事件,因为它已添加到 View 堆栈的顶部。

关于ios - 调用自定义 View 时 UIButton 不可单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19723772/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com