我创建了一个名为UICustomButton
的类,它是UIView
的子类。我将UIButton
添加到UIView
作为subview
,如下面的代码所示:
-(id)initWithButtonType:(NSString *)type
{
self = [super init];
if (self)
{
self.customButton = [self setupButtonWithTitle:type andFrame:frame];
[self addSubview:self.customButton];
self.customButton addTarget:self action:@selector(buttonPressed) forControlEvents:UIControlEventTouchUpInside];
}
return self;
}
我面临的问题是,虽然按钮出现,但它们不可点击。我将按钮添加到UIView
的方式有什么问题吗?
编辑:要添加,我将这个自定义按钮类实例用于单元格:
UICustomButton *customButton = [[UICustomButton alloc]initWithFrame:someFrame];
[cell.contentView addSubView:customButton];
答案 0 :(得分:8)
检查UICustomButton
对象的框架,以及self.customButton
是否超出其superView
。
答案 1 :(得分:2)
确保子视图的框架位于其超视图的框架内。我遇到了两次问题,两次都看不到子视图的框架。
答案 2 :(得分:0)
您应该检查是否所有属性userInteractionEnabled
都已启用:
UITableView
的属性UITableViewCell
的属性UICustomButton
customButton
-(id)initWithButtonType:(NSString *)type
的属性
醇>
答案 3 :(得分:0)
我的按钮无效,因为我有两个视图。如您所见,第一个视图的宽度和高度为0像素。我已将此视图的大小设置为与view2相同,然后我的按钮可以点击。
UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(325, 346, 0, 0)];
view1.alpha = 0.90;
UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 450, 150)];
[view2.layer setCornerRadius:10.0f];
view2.backgroundColor = [UIColor whiteColor];
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn addTarget:self action:@selector(addClosedToCollection) forControlEvents:UIControlEventTouchUpInside];
[btn setFrame:CGRectMake(30, 30, 300, 32)];
[btn setTitle:@"i'm a button" forState:UIControlStateNormal];
[view2 addSubview:btn];
[view1 addSubview:view2];
我希望我能帮助别人:)
答案 4 :(得分:0)
您的外部视图的高度可能为0.添加约束使其与子视图的高度相同(或高于),或者使用足够大的框架创建它。
答案 5 :(得分:-1)
尝试将其放在if语句之后:
self.isTouchEnabled = YES;