gpt4 book ai didi

ios - 混合 Storyboard中的单元和以编程方式创建的单元

转载 作者:行者123 更新时间:2023-11-30 13:34:48 28 4
gpt4 key购买 nike

我在 Storyboard中有 Collection View 。我在 Storyboard中有一部分单元格,还有我以编程方式创建的部分单元格。我应该在 sizeForItemAtIndexPath 方法中做什么?我应该返回哪个值?对于我以编程方式创建的单元格,我为他返回大小。但我不希望 Storyboard中的单元格的副本大小。我的意思是,我有:

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return self.viewModels[indexPath.item].viewSize // for programmatically created cells
}

在 viewModel 类中:

class ViewModel {
var viewSize:CGSize = CGSizeMake(50, 50)//for example
}

此外,我还有 Storyboard中的单元格以及我在 Storyboard中设置的单元格大小。例如,我在 Storyboard中有 5 个不同的单元格,每个单元格都有不同的大小。我应该做什么?

 let viewModel = self.viewModels[indexPath.item]
if viewModel.id == "CELL_1" { return CGSizeMake(10, 10) }
else if viewModel.id == "CELL_2" { return CGSizeMake(20, 20) }
//and so on

我不想这样做:(您知道在未实现此方法时如何从 Storyboard获取项目大小或创建行为的解决方案吗? (我的意思是,如果您不实现此方法,那么 Collection View 将从 Storyboard获取大小)

最佳答案

您可以使用其重用 ID 实例化单元并调用:

cell.setNeedsLayout()
cell.layoutIfNeeded()

然后访问单元格的框架以获取其实际大小。

关于ios - 混合 Storyboard中的单元和以编程方式创建的单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36202685/

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