【发布时间】:2014-08-31 19:47:45
【问题描述】:
我正在尝试创建一个具有不同 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。
任何帮助将不胜感激。 发送, 沙哈尔。
【问题讨论】:
标签: ios objective-c uicollectionview uicollectionviewcell