我有一个scrollView
,其中UIView
为子视图。这具有UIView
子视图UIButton
。只有scrollView
连接到插座,其余全部都是代码。按钮不响应触摸,触摸时不变蓝。我能做些什么才能让它发挥作用?
这是代码:
- (void)viewDidLoad
{
[super viewDidLoad];
//......
self.buttonHome = [UIButton buttonWithType:UIButtonTypeCustom];
[self.buttonHome addTarget:self action:@selector(pressedHome:)
forControlEvents:UIControlEventTouchUpInside];
//....
self.containerView =[[UIView alloc]initWithFrame:self.scrollView.frame];
self.containerView.userInteractionEnabled=YES;
[self.scrollView addSubview:self.containerView];
[self.containerView addSubview:self.buttonHome];
}
-(void) pressedHome:(id)sender{
//....
}
答案 0 :(得分:4)
您必须设置视图的内容大小。它必须大于或等于scrollView的内容大小。
因为您的视图的默认大小是320 * 480(3.5“视网膜)和320 * 568(4”视网膜)。所以增加视图的高度为 -
self.view.frame = CGRectMake(0,0,320,700);
然后将其添加为scrollView的子视图。
将帮助您解决问题。
答案 1 :(得分:1)
我解决了它
- (BOOL)touchesShouldCancelInContentView:(UIView *)view
{
return ![view isKindOfClass:[UIButton class]];
}
因为问题是放一个按钮UIButton
答案 2 :(得分:0)
确保您的滚动视图不会吞下触摸: 检查另一个SO question
答案 3 :(得分:-1)
使containerView视图高度与scrollView Height相同。