我有一个NSDictionary,它包含将在数组中使用的对象集,以根据需要创建任意数量的对象。我在图片的右上角有一个删除按钮,由于某种原因,我无法点击它。我会把它写出来......
-(void)addItemsToSomething:(NSMutableArray*)array
{
for (NSDictionary *item in array) {
UIImageView *container....
UIImageView *boxInContainer....
UIButton *delete = [UIButton new];
delete.frame = CGRectMake(70, -4, 24, 26);
delete.userInteractionEnabled = YES;
[delete setBackgroundImage:[UIImage imageNamed:@"image.png"] forState:UIControlStateNormal];
[delete addTarget:self action:@selector(delete:) forControlEvents:UIControlEventTouchUpInside];
[boxInContainer addSubview:delete];
some math....
}
more math
}
-(void)delete:(id)sender
{
NSLog(@"Do I work");
}
NSLog永远不会在日志中显示,也不会显示按钮阴影以显示它。我甚至将userInteractionEnabled设置为YES只是为了尝试覆盖另一个基地,但按钮仍然盯着我,并且不会点击。谢谢您的帮助。
这一切都放在了滚动视图上,忘了那个部分。
答案 0 :(得分:2)
问题是你把它放在UIImageView
上。 UIImageView
默认情况下userInteractionEnabled
设置为NO。只需更改boxInContainer.userInteractionEnabled = YES;
,按钮即可生效!
哦,如果boxInContainer
是container
的子视图,那么您还必须设置container.userInteractionEnabled = YES;
答案 1 :(得分:1)
我认为,你的父容器视图超出了他的superView的范围。
要检查这一点,请尝试将clipToBounds
属性设置为YES
以查看父容器视图的超级视图,然后看,您的按钮仍然可见吗?