大家好我创建这个按钮:
_myButton = [[UIButton buttonWithType:UIButtonTypeCustom] retain];
DLBadgeLayerDelegate *layerDelegate = [[DLBadgeLayerDelegate alloc] init];
_myButton.frame = CGRectMake(0.0 , 0.0, 100.0, 100.0);
[_myButton addTarget:self action:@selector(myButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
_myButton.layer.backgroundColor = [[UIColor redColor] CGColor];
_myButton.center = CGPointMake(10.0, 10.0);
[self addSubview:_myButton];
[_myButton release];
按钮出现在屏幕上,但是如果我点击它就没有任何反应。如果我只创建一个圆形的矩形按钮,而不是在其图层上没有自定义绘图,或者如果我只是将代码层图层保留下来,那么一切正常。你有什么想法为什么我会得到这种行为,因为我想在按钮的图层中做一些自定义绘图?
答案 0 :(得分:1)
事件不会发送到控件,即(1)隐藏,(2)alpha< 0.1,(3)userInteraction = NO等。由于你没有按钮图像,没有按钮标题,没有背景颜色,没有背景图像,可能它被视为透明(如alpha< 0.1)并且没有获取事件。尝试添加图像,标题或背景颜色(在UIView中,而不是图层中)以查看是否存在问题。
编辑:尝试将背景颜色放在视图的backgroundColor中而不是在图层的backgroundColor中:
_myButton.backgroundColor = [UIColor redColor];
答案 1 :(得分:0)
如果我离开这条线:
_myButton.layer.backgroundColor = [[UIColor redColor] CGColor];
事件被正确触发,我仍然没有标题,alpha等。我不认为这是问题或解释,但我也会尝试这种方式。