gpt4 book ai didi

ios - 显示具有多种不同 UICollectionViewCells 类型的 UICollectionView

转载 作者:行者123 更新时间:2023-11-29 02:42:27 26 4
gpt4 key购买 nike

我正在尝试创建一个具有不同 UICollectionViewCells 的 UICollectionView我有几个项目,一个有 3 个 UILabel 和 UIIMageView,另一个有 2 个 UIImageViews 和 6 个 UILables 等。

我正在尝试初始化单元格并为每个特定场景添加 View ,但这似乎不起作用。我正在检查 cell==nil,然后添加 View (我确实进入了“if”语句)。

如果我在 if 语句中使用 'addSubView',它什么都不做

ResumeFeedCell *cell= (ResumeFeedCell*)[collectionView dequeueReusableCellWithReuseIdentifier:@"ResumeFeedCell" forIndexPath:indexPath];
if (!cell) {
//init views in the cell and add them
UIImageView *mediaImage =[[UIImageView alloc] initWithFrame:CGRectMake(0 , 0,530, 560)];
mediaImage.tag = 12;
[cell.contentView addSubview:mediaImage];

UIImageView *typeImage = [[UIImageView alloc] initWithFrame:CGRectMake(0 , 0,150, 150)];
typeImage.tag = 11;
[cell.contentView addSubview:typeImage];

UILabel *textLable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 530, 560)];
textLable.tag = 10;
[cell.contentView addSubview:textLable];

}

UIImageView *mediaImage = (UIImageView*)[cell.contentView viewWithTag:12];
UIImageView *typeImage = (UIImageView*)[cell.contentView viewWithTag:11];
UILabel *textLable = (UILabel*)[cell.contentView viewWithTag:10];

textLable.text = _bio;
textLable.textAlignment = NSTextAlignmentCenter;
textLable.numberOfLines = 0;
textLable.tag = 10;
textLable.adjustsFontSizeToFitWidth=YES;
textLable.minimumScaleFactor=0.5;

[mediaImage setImageWithURL:[NSURL URLWithString:getImageUrlwithIdAndSize([[[_datasource objectAtIndex:indexPath.row] objectForKey:@"media"] objectAtIndex:0], 1)]];

我尝试了一种不同的方式,比如:

UIImageView *mediaImage = (UIImageView*)[cell.contentView viewWithTag:12];
if(!mediaImage)mediaImage = [[UIImageView alloc] initWithFrame:CGRectMake(0 , 0,530, 560)];
mediaImage.tag = 12;
[cell.contentView addSubview:mediaImage];


UIImageView *typeImage = (UIImageView*)[cell.contentView viewWithTag:11];
if(!typeImage)typeImage = [[UIImageView alloc] initWithFrame:CGRectMake(0 , 0,150, 150)];
typeImage.tag = 11;
[cell.contentView addSubview:typeImage];

UILabel *textLable = (UILabel*)[cell.contentView viewWithTag:10];

if (!textLable)
textLable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 530, 560)];

这似乎工作正常,但我认为它有点难看并且占用内存。因为它为每个项目添加了 subview ,这使得它不可重用......

我看到了THIS ANSWER但我想自定义 cellForItemAtIndexPath。

任何帮助将不胜感激。发送,沙哈尔。

最佳答案

回答我自己的问题。

这段代码效果很好!我不得不清理并重建项目。

事实证明,即使在运行该项目 200 次之后,它也不会按预期进行编译。

总而言之,如果某些东西不起作用,请清理项目,它并不总是代码。

关于ios - 显示具有多种不同 UICollectionViewCells 类型的 UICollectionView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25595662/

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