我正在尝试创建一个具有不同UICollectionViewCells的UICollectionView 我有几个项目,一个有3个UILabel和UIIMageView,另外有2个UIImageViews和6个UILables等。
我正在尝试初始化单元格并为每个特定场景添加视图,但这似乎不起作用。 我正在检查cell == nil然后添加视图,(我确实进入'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)];
这似乎工作正常,但我认为它有点难看和内存消耗。 因为它为每个项目添加了子视图,这使得它不可重复使用......
我看到THIS ANSWER,但我想自定义cellForItemAtIndexPath。
任何帮助将不胜感激。 TX, 沙哈尔。
答案 0 :(得分:1)
回答我自己的问题。
这段代码很棒! 我不得不清理并重建项目。
事实证明,即使在运行项目200次之后,它也不会按原样编译它。
总之,清洁项目如果某些东西不起作用,它并不总是代码。