7

我有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

4 回答 4

4

您必须设置视图的内容大小。那必须大于或等于scrollView的内容大小。

因为您的视图的默认尺寸是 320*480(3.5" 视网膜)和 320*568(4" 视网膜)。所以增加视野高度——

self.view.frame=CGRectMake(0, 0, 320, 700);

然后将此添加为您的滚动视图的子视图。

将带您找到解决方案。

于 2013-04-08T10:15:15.023 回答
2

我解决它

  - (BOOL)touchesShouldCancelInContentView:(UIView *)view
  {
       return ![view isKindOfClass:[UIButton class]];
  }

既然问题是放了一个按钮 UIButton

于 2012-11-21T09:37:27.583 回答
0

确保您的滚动视图没有吞下触摸:检查这个其他 SO问题

于 2012-11-20T14:15:30.610 回答
-1

使 containerView 视图高度与 scrollView 高度相同。

于 2015-09-18T21:26:13.740 回答