【问题标题】:iOS - Some UIViews inside UIScrollview not receiving touchesiOS - UIScrollview 中的一些 UIViews 没有收到触摸
【发布时间】:2016-07-27 20:43:43
【问题描述】:

我正在以编程方式将视图添加到 UIScrollView。问题是只有那些视图响应最初在 iPad 上可见的触摸。如果我最初滚动到 iPad 屏幕之外的视图并单击它们,则没有任何反应。以下是我的视图控制器的样子;请注意,我没有使用自动布局。

以下是我如何为作为 UIButton 子类的自定义视图设置触摸:

[myView addTarget:self action:@selector(handlePanelClick:) forControlEvents:UIControlEventTouchUpInside];

【问题讨论】:

  • 检查您的视图是否不在超级视图的范围之外。您可以为此使用视图调试器或启用Clip Subviews 到所有未收到触摸的视图的超级视图。
  • 这里的myView是什么?
  • @RajTandel 我的客户按钮,它是 UIButton 的子类。
  • @hrehman 你能分享你如何在滚动视图中添加按钮的代码吗?
  • @RajTandel 只需调用 addSubview。

标签: ios objective-c iphone uiview uiscrollview


【解决方案1】:

在@Jelly 评论的帮助下,我注意到包含所有子视图的滚动视图内的视图未正确调整大小。以下是它最初的样子......当屏幕上的可见子视图正确处理触摸时。

以下是我滚动到底部时的外观...请注意,PanelsView 的大小未正确调整以包含所有子视图:-

看起来我只需要调整 PanelsView 的高度以匹配它的子 (viewPanelContainer) 高度,这是我在 panelView 完成绘图后在下面的行中所做的:-

_panelsView.frame = CGRectMake(0, 0, _panelsView.frame.size.width, _panelsView.viewPanelContainer.frame.size.height);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2018-04-27
    相关资源
    最近更新 更多