gpt4 book ai didi

ios - 未为自定义 UITableViewCell 调用 GetHeightForRow

转载 作者:行者123 更新时间:2023-11-28 21:53:10 25 4
gpt4 key购买 nike

我正在使用 Xamarin iOS Designer 来实现带有自定义 UITableViewCell 的表格。我的 TableView 源代码如下所示:

public class StreamTableSource : UITableViewSource
{
PrayerCard[] cards;

public StreamTableSource(PrayerCard[] items)
{
this.cards = items;
}

public override UITableViewCell GetCell(UITableView tableView, MonoTouch.Foundation.NSIndexPath indexPath)
{
PrayerCardCell cell = (PrayerCardCell)tableView.DequeueReusableCell("prayercardcell");
cell.Update(cards[indexPath.Row]);
return cell;
}

public override float GetHeightForRow(UITableView tableView, NSIndexPath indexPath)
{
float computedHeight = 50.0f; // fixed for now
Console.WriteLine("Height: {0}", computedHeight); // never shows
return computedHeight;
}

...
}

GetHeightForRow 方法从未被调用,所以我最终得到标准的 44 点行。我的 UITableViewController 只有一个 UITableViewSource 而没有一个 UITableViewDelegate 所以 the solution here ,没有解决我的问题。

有什么想法吗?

最佳答案

UITableViewSourceUITableViewDataSourceUITableViewDelegate 的组合(仅在 Xamarin.iOS 上存在)。

float GetHeightForRow(UITableView tableView, NSIndexPath indexPath) 方法是委托(delegate)的一部分。

如果在 View 已加载时未设置委托(delegate),它似乎指向默认(空)实现。结果是 UITableViewSource 的委托(delegate)方法不会被调用。

UITableViewSource 必须设置得足够早,一个好的地方是 View Controller 的 ViewDidLoad() 的开头。

关于ios - 未为自定义 UITableViewCell 调用 GetHeightForRow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27530140/

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