【问题标题】:UIButton does not work in uiscrollViewUIButton 在 uiscrollView 中不起作用
【发布时间】:2012-11-08 15:06:03
【问题描述】:

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

【问题讨论】:

  • 我模拟了你提到的工作,但它对我来说工作正常
  • 对我来说不起作用。没有 UIView 一切正常,但是这个 UIView 是缩放所必需的

标签: ios uiview uiscrollview uibutton


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

    将为您提供解决方案。

    【讨论】:

      【解决方案3】:

      我解决了

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

      既然问题是放一个按钮UIButton

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2013-05-15
          • 2015-10-07
          • 2015-03-05
          • 1970-01-01
          • 2017-03-29
          • 1970-01-01
          • 2014-04-07
          • 2016-09-25
          相关资源
          最近更新 更多