Xamarin IOS UILabel在UIScrollView中点击手势不起作用

Posted

技术标签:

【中文标题】Xamarin IOS UILabel在UIScrollView中点击手势不起作用【英文标题】:Xamarin IOS UILabel Tap Gesture inside UIScrollView not working 【发布时间】:2016-08-25 16:13:29 【问题描述】:

我有一个 UIScrollView,里面有一个 UILabel。我需要检测 UILabel 的点击手势事件。目前,它不起作用。我是 xamarin ios 的新手,请帮忙。提前致谢。

这是我的代码

UILabel lViewallLabel = new UILabel(new CGRect((View.Bounds.Width / 2) - 20, 270, View.Bounds.Width / 2, 16));
lViewallLabel.Text = "VIEW ALL >>";
lViewallLabel.TextAlignment = UITextAlignment.Right;
lViewallLabel.TextColor = UIColor.White;
lViewallLabel.Font = UIFont.SystemFontOfSize(12f);
lViewallLabel.AdjustsFontSizeToFitWidth = true;
lViewallLabel.UserInteractionEnabled = true;
UITapGestureRecognizer tgrLabel2 = new UITapGestureRecognizer(() =>
       
             UIAlertView myAlert = new UIAlertView();
             myAlert.AddButton("OK");
             myAlert.Message = "Label was tapped.";
             myAlert.Title = "It worked!";
             myAlert.Show();
        );
lViewallLabel.AddGestureRecognizer(tgrLabel2);
innerView.AddSubview(lViewallLabel);

scrollView.AddSubview(innerView);

【问题讨论】:

【参考方案1】:

我已经使用下面的代码解决了这个问题。代码的小改动,我已经将UILabel直接添加到UIScrollView而不是innerview。

UITapGestureRecognizer singleTap = new UITapGestureRecognizer();
singleTap.CancelsTouchesInView = false;
scrollView.AddGestureRecognizer(singleTap);

scrollView.AddSubview(lViewallLabel);

这个post帮助我解决了这个问题。

【讨论】:

以上是关于Xamarin IOS UILabel在UIScrollView中点击手势不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.iOS - 操作表行号

在 Xamarin IOS 中根据文本大小调整标签

如何使标签文本中的链接可用于语音(可访问性)? (iOS,Xamarin)

尽管我正确设置了y,但Toast UILabel出现在屏幕外

如何使用 c# 在 Xamarin.Ios 中将 UIColor 转换为字符串和字符串转换为 UIColor

我无法在 Xamarin Studio 上使用 C# 更改 CollectionViewCell 的 UILabel 字体