0

大家好,我创建这个按钮是这样的:

_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];

该按钮出现在屏幕上,但如果我点击它没有任何反应。如果我只是创建一个圆角矩形按钮,而不是在其图层上没有自定义绘图,或者我只是将图层代码行留在外面,那么一切都很好。你有什么想法为什么我会得到这种行为,因为我想在按钮的图层中做一些自定义绘图?

4

2 回答 2

1

事件不会发送到 (1) 隐藏、(2) alpha < 0.1、(3) userInteraction=NO 等的控件。由于您没有按钮图像,没有按钮标题,没有背景颜色,没有背景图像,可能它被视为透明(如 alpha < 0.1)并且没有收到事件。尝试添加图像、标题或背景颜色(在 UIView 中,而不是在图层中),看看是否是问题所在。

编辑:尝试将背景颜色放在视图的背景颜色中,而不是图层的背景颜色中:

_myButton.backgroundColor = [UIColor redColor];
于 2010-04-28T00:13:39.287 回答
0

如果我离开这条线:

_myButton.layer.backgroundColor = [[UIColor redColor] CGColor];

事件被正确触发,我仍然没有标题、alpha 等。我不认为这是问题或解释,但我也会尝试这种方式。

于 2010-04-28T00:50:48.873 回答