UIButton在uiscrollView中不起作用

时间:2012-11-20 14:11:46

标签: ios uiview uiscrollview uibutton

我有一个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{
         //....
  }

4 个答案:

答案 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相同。