在滚动视图的可见区域之外创建的视图上的触摸事件

Posted

技术标签:

【中文标题】在滚动视图的可见区域之外创建的视图上的触摸事件【英文标题】:touch events on views created outside visible area on scrollview 【发布时间】:2016-09-01 14:57:20 【问题描述】:

所以我有这个问题,我有这个视图结构:

Controller->View->ScrollView->主视图

我有一个按钮加载到主视图中,但在滚动视图的可见内容之外。当我向上滚动查看按钮时,触摸不起作用,但如果我将要加载的按钮放在可见区域中,它就会起作用。

我也尝试使用简单的图像视图并设置手势识别器(启用用户交互),问题完全相同。

这是我定义按钮的地方:

 UIButton scrapbookbackground = new UIButton(new CGRect(SPACING, progresses_view.Frame.Y + progresses_view.Frame.Height + SPACING, View.Frame.Width - SPACING * 2, 90));
        scrapbookbackground.BackgroundColor = UIColor.Clear.FromHex(0x4f80bc);
        scrapbookbackground.Layer.CornerRadius = 10f;
        scrapbookbackground.Layer.BorderWidth = 1f;
        scrapbookbackground.Layer.BorderColor = UIColor.Blue.CGColor;
        scrapbookbackground.ClipsToBounds = true;

        scrapbookimg = UIImage.FromFile("Images/scrap_capa.png");
        scrapbookbackground.SetBackgroundImage(scrapbookimg, UIControlState.Normal);

        scrapbookbackground.TouchUpInside += (args, e) => 
            Console.WriteLine("scrapbooktouch");
            NavigationController.PushViewController(new ScrapBookPageViewController(), true);
        ;

        mainview.Add(scrapbookbackground);

【问题讨论】:

【参考方案1】:

想通了。没有正确设置滚动视图的内容大小。

【讨论】:

以上是关于在滚动视图的可见区域之外创建的视图上的触摸事件的主要内容,如果未能解决你的问题,请参考以下文章

在作为子视图添加的滚动视图中将触摸事件传递给 uiimageview

如何将集合视图单元格滚动到可见区域的中间

滚动视图 iPhone 内的文本字段

scrollView 上的触摸功能

如何确定滚动视图中当前可见的区域并确定中心?

将触摸事件传递给 UICollectionViewCell 内容?