gpt4 book ai didi

ios - 具有自定义 UICollectionViewSource 的 Xamarin.iOS UICollectionView 崩溃

转载 作者:行者123 更新时间:2023-11-29 00:34:21 24 4
gpt4 key购买 nike

我尝试在 Xamarin.iOS 的 UIControllerView 中管理一个 UICollectionView。我尝试了很多东西,像这样:https://developer.xamarin.com/guides/ios/tvos/user-interface/collection-views/或者这个:https://www.youtube.com/watch?v=W4H9uLjoEjM

最后,我遵循了本教程:https://forums.xamarin.com/discussion/11274/how-to-setup-uicollectionview-datasource

但是我还是被屏蔽了。我的应用程序在尝试显示 UIViewController 时崩溃并出现此错误:[Gotago_iOS_CollectionViewSource_ViewSourceListProgram collectionView:cellForItemAtIndexPath:]: unrecognized selector sent to instance 0x7af49db0'

这是我的代码...有什么帮助吗?

public partial class ViewControllerListProgram : UIViewController
{
private ViewSourceListProgram m_viewSource;

public ViewControllerListProgram(IntPtr handle)
: base(handle)
{
}

public override async void ViewDidLoad()
{
base.ViewDidLoad();

AppDelegate.CurrentViewController = this;

ApiController_GetListConseilCircuit apiCtrl = new ApiController_GetListConseilCircuit();

m_collectionView.RegisterClassForCell(typeof(CellListProgram), CellListProgram.Id);
m_viewSource = new ViewSourceListProgram(await apiCtrl.OnlineGetListConseilCircuit());
m_collectionView.Source = m_viewSource;
}
}



public class ViewSourceListProgram : UICollectionViewSource
{
public List<ApiController_GetListConseilCircuit.ConseilCircuit> m_lsCircuits;

public ViewSourceListProgram(List<ApiController_GetListConseilCircuit.ConseilCircuit> lsCircuits)
{
m_lsCircuits = lsCircuits;
}

public override nint NumberOfSections(UICollectionView collectionView)
{
return 1;
}

public override nint GetItemsCount(UICollectionView collectionView, nint section)
{
return m_lsCircuits.Count;
}

public override bool ShouldHighlightItem(UICollectionView collectionView, Foundation.NSIndexPath indexPath)
{
return true;
}

public override void ItemHighlighted(UICollectionView collectionView, Foundation.NSIndexPath indexPath)
{
CellListProgram cell = (CellListProgram)collectionView.CellForItem(indexPath);

Toast.MakeText("Cell highlighted", Toast.LENGTH_LONG).Show();
}

public override void ItemUnhighlighted(UICollectionView collectionView, Foundation.NSIndexPath indexPath)
{
CellListProgram cell = (CellListProgram)collectionView.CellForItem(indexPath);

Toast.MakeText("Cell unhighlighted", Toast.LENGTH_LONG).Show();
}

public UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)
{
CellListProgram cell = (CellListProgram)collectionView.DequeueReusableCell(CellListProgram.Id, indexPath);

ApiController_GetListConseilCircuit.ConseilCircuit circuitOrProgram = m_lsCircuits[indexPath.Row];

return cell;
}
}


public partial class CellListProgram : UICollectionViewCell
{
public static readonly NSString Id = new NSString("programCell");
public CellListProgram (IntPtr handle) : base (handle)
{
}
}

最佳答案

好的......经过几个小时的可怕搜索,我发现了我的错误。

我在这里忘记了“override”关键字:

public UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)

应该是

public override UICollectionViewCell GetCell(UICollectionView collectionView, NSIndexPath indexPath)

哎呀

现在,一切正常!没有崩溃,很好地触发了用户的操作

关于ios - 具有自定义 UICollectionViewSource 的 Xamarin.iOS UICollectionView 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40975412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com