Xamarin iOS:从情节提要中的 UICollectionViewCell 获取信息

Posted

技术标签:

【中文标题】Xamarin iOS:从情节提要中的 UICollectionViewCell 获取信息【英文标题】:Xamarin iOS: Get information from a UICollectionViewCell in the storyboard 【发布时间】:2015-04-21 21:29:31 【问题描述】:

我正在尝试从我的故事板中的原型 UICollectionViewCell 获取高度和其他一些属性。我需要 ViewDidLoad 中的这些值,所以在渲染任何单元格之前。

我为 tableview 找到了这个答案:https://***.com/a/14127936/2637259 但它似乎不适用于集合视图,因为我需要一个索引路径。

我还找到了这个似乎可以解决问题的答案:https://***.com/a/22761931/2637259 但我不知道如何在 xamarin 中做到这一点。

谁能赐教?

编辑:我需要在 ViewDidLoad(或至少在加载单元格之前的任何地方)拥有它的原因是我在单元格中拥有一个 UIWebView。我有一个要加载到单元格中的 html 字符串。所以我做了一个函数来计算webview的高度。在计算完所有单元格后,我调用 CollectionView.ReloadData() 来加载单元格。在 sizeForItemAtIndexPath 中,我需要检查单元格的高度是否小于没有 webview 的单元格的高度加上 webview 的计算高度。如果没有,我需要返回标准单元格大小。否则我需要返回没有 webview 加上计算高度的单元格高度。

【问题讨论】:

你能解释一下为什么你需要 viewDidLoad 的高度吗?可能还有其他方法可以完成您想要完成的工作。 我编辑了问题以添加它。 【参考方案1】:

您可以像这样为自定义单元类创建静态属性:

public partial class CustomCell: UICollectionViewCell


    public static new float CellHeight  get  return 44f;  

    ... rest of your class

然后你可以通过调用得到高度

CustomCell.CellHeight;

希望对您有所帮助!干杯!

【讨论】:

这就是我目前正在做的事情。但是当其他人在情节提要中进行更改时,更改会“破坏”我的代码。因此,我正在寻找一种方法让其他人更改单元格(项目中有许多不同的单元格),而无需检查每个单元格类。

以上是关于Xamarin iOS:从情节提要中的 UICollectionViewCell 获取信息的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.IOS 导入现有情节提要

IOS。如何从情节提要中的图像进行布局?

iOS 应用程序加载器:错误 ITMS-90705:“未找到启动情节提要...”

更改 RootView 控制器 Xamarin IOS 应用程序

从情节提要加载 UILabel,无法更改 cellForRowAtIndexPath 中的框架

在 xamarin.ios 中的视图控制器之间传递数据