单击未调用的 UICollectionViewCell 中的特定元素(而不是从 Source 触发的 ItemSelected)Xamarin.ios
Posted
技术标签:
【中文标题】单击未调用的 UICollectionViewCell 中的特定元素(而不是从 Source 触发的 ItemSelected)Xamarin.ios【英文标题】:Click on specific element in UICollectionViewCell not called(instead ItemSelected fired from Source) Xamarin.ios 【发布时间】:2019-08-23 09:51:06 【问题描述】:我的 Xamarin.ios 项目中有一个 CollectionView。我的 UICollectionViewCell 中有一个按钮,我希望我的按钮上有 TouchDown。
但是当我点击这个按钮时,ItemSelected 被触发而不是我的 TouchDown 事件处理程序(调用单元格上的全局触摸而不是特定触摸)。
您能帮我如何在任何单元格内指定我的触摸吗? (对不起我的英语不是***)
这是我的代码:
class MyCollectionViewSource : UICollectionViewSource
List<string> _Datas;
public MyCollectionViewSource(List<string> datas)
_Datas = datas;
public override nint GetItemsCount(UICollectionView collectionView, nint section)
return _Datas.Count;
public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
var view = (MyCollectionViewCell)collectionView.DequeueReusableCell(MyCollectionViewCell.CellId, indexPath);
return view;
public override void ItemSelected(UICollectionView collectionView, NSIndexPath indexPath)
Console.WriteLine("Row 0 selected", indexPath.Row);
public override bool ShouldSelectItem(UICollectionView collectionView, NSIndexPath indexPath)
return true;
class MyCollectionViewCell : UICollectionViewCell
UIView _MyCellView;
public static readonly NSString CellId = new NSString("MyCollectionViewCell");
[Export("initWithFrame:")]
MyCollectionViewCell(RectangleF frame) : base(frame)
_MyCellView = new UIView();
ContentView.AddSubview(_MyCellView);
UIButton btn = new UIButton();
btn.SetTitle("test", UIControlState.Normal);
btn.Frame = new CoreGraphics.CGRect(0, 0, 100, 20);
btn.TouchDown += Btn_TouchDown;
_MyCellView.AddSubview(btn);
private void Btn_TouchDown(object sender, EventArgs e)
【问题讨论】:
【参考方案1】:如果要设置Button
的点击事件。活动名称是
btn.TouchUpInside += Btn_TouchUpInside;
事件TouchDown
会在你点击按钮但没有收回你的手指时被调用。
【讨论】:
首先,谢谢您是对的,但即使使用 TouchUpInside 也无法正常工作 分享你的样品,我会在我这边进行测试。以上是关于单击未调用的 UICollectionViewCell 中的特定元素(而不是从 Source 触发的 ItemSelected)Xamarin.ios的主要内容,如果未能解决你的问题,请参考以下文章