gpt4 book ai didi

ios - 自定义 UIButton 类的 subview 不会触发点击

转载 作者:行者123 更新时间:2023-12-01 18:25:59 25 4
gpt4 key购买 nike

我正在编写一个自定义 UIButton 子类,以创建我自己的完全自定义按钮
拥有完全的控制权。仍然,当我尝试添加 subview 时遇到问题
到那个 UIButton 的 View 。 subview 阻止“触摸”事件,因此它不会冒泡
UIButton 本身..

这是一个演示:
我首先用一个框架创建了我的 CustomNavigationButton。它是洋红色的。
我可以在屏幕上看到洋红色,所以它就在那里。其次,我添加了一个 subview
到那个 CustomNavigationButton(它是绿色的),我可以看到绿色,所以它是
那里,但如果我点击绿色矩形( subview ),“UIControlEventTouchUpInside”
没有在我的 CustomNavigationButton 上调用..

在我的 AppDelete 中:

CustomNavigationButton* mapBtn = [[CustomNavigationButton alloc] initWithFrame:CGRectMake(0, 0, 100, 25)];
mapBtn.backgroundColor = [UIColor magentaColor];
[mapBtn addTarget:self action:@selector(goMapHandler:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:mapBtn];

这是我的 CustomNavigationButton 类(它是 UIButton 的子类)
@implementation CustomNavigationButton
@synthesize bg;
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {

// STORE INITIAL FRAME
self.initialFrame = frame;

bg = [[UIView alloc] initWithFrame:CGRectMake(0, 20, 40, 40)];
bg.backgroundColor = [UIColor greenColor];
[bg setUserInteractionEnabled:YES];
[self addSubview:bg];

}
return self;
}
@end

最佳答案

我想出了怎么做!
如果“bg”是我添加到 UIButton 的 subview ,那么你应该这样做:

bg.userInteractionEnabled = NO;
bg.exclusiveTouch = NO;

但请记住,如果您的 subview 扩展了 UIButton 的框架,
触摸不会发生!您可以检查您的 subview 是否超过 UIButton
通过给 UIButton 一个背景颜色。

关于ios - 自定义 UIButton 类的 subview 不会触发点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13821453/

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