2013-01-13 104 views
0

我有一個collectionview控制器和一個collectionviewcell。在collectionviewcell中,我有一個自定義類。我正在設置uiimage,但它不工作。集合視圖單元格顯示不顯示

先謝謝您!

在我試圖設置圖像的collectionview控制器中的方法。

-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{ 

    static NSString *[email protected]"Cell"; 

    CollectionVIewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifier forIndexPath:indexPath]; 
    ; 
    CollectionVIewCell *feederCell = (CollectionVIewCell*)[_availableFilters objectAtIndex:indexPath.row]; 



    cell.labelDisplay.text=feederCell.filterName; 
    NSLog(@"selected =%@",cell.labelDisplay.text); 
    if (feederCell.isSelected) { 
     UIImageView *imageView=[[UIImageView alloc]init]; 
     //process string name 
     NSString*filePath =[NSString stringWithFormat:@"%@.png",feederCell.filterName]; 
     NSArray* words = [filePath componentsSeparatedByCharactersInSet :[NSCharacterSet whitespaceCharacterSet]]; 
     filePath=[words componentsJoinedByString:@""]; 
     cell.FilePath=filePath; 
     //image 
     UIImage *image = [UIImage imageNamed:filePath]; 
     [imageView setFrame:CGRectMake(0, 0, image.size.width, image.size.height)]; 
     [imageView setImage:image]; 
     [cell setIconDisplay:imageView];//setting the image that won't set 
    }else if(!feederCell.isSelected){ 
     UIImageView *imageView=[[UIImageView alloc]init]; 
     NSString*filePath =[NSString stringWithFormat:@"%@.png",feederCell.filterName]; 
     NSArray* words = [filePath componentsSeparatedByCharactersInSet :[NSCharacterSet whitespaceCharacterSet]]; 
     filePath=[words componentsJoinedByString:@""]; 
     UIImage *image = [UIImage imageNamed:filePath]; 
     [imageView setFrame:CGRectMake(0, 0, image.size.width, image.size.height)]; 
     [imageView setImage:image]; 
     [cell setIconDisplay:imageView]; 
    } 

    return cell; 

.h文件中

// 
// CollectionVIewCell.h 

#import <UIKit/UIKit.h> 

@interface CollectionVIewCell : UICollectionViewCell 
@property (strong, nonatomic) IBOutlet UIImageView *IconDisplay; 
@property (strong, nonatomic) IBOutlet UILabel *labelDisplay; 
@property (assign,nonatomic) BOOL isSelected; 
@property (strong,nonatomic)NSString*textName; 
@property(strong,nonatomic)NSString*FilePath; 

@end 

.m文件

// 
// CollectionVIewCell.m 

#import "CollectionVIewCell.h" 

@implementation CollectionVIewCell 

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     _labelDisplay.text=_textName; 
     _IconDisplay=[[UIImageView alloc]init]; 
    } 
    return self; 
} 

@end 

回答

1

您需要的UIImageView的添加爲子視圖。否則它存在但不顯示。