gpt4 book ai didi

ios - Imageview 没有出现在以编程方式创建的 Collection View 中

转载 作者:行者123 更新时间:2023-11-28 21:29:04 25 4
gpt4 key购买 nike

我很难弄清楚为什么 cell.imageview 属性不显示下面的 imageUIImage 不为零,创建了单元格,如果我为单元格分配了背景,则会显示它,这证明我正在正确创建 collectionview 和我的单元格。我以编程方式创建我的 collectionview 并且不使用任何 IB 或 interface builder。我以前做过很多次,但我真的对这个感到挠头。

提前致谢。

    @interface MainViewController : UIViewController

@property(strong, nonatomic) UICollectionView *collectionView;

@end

@interface MainViewController ()<
UICollectionViewDataSource, UICollectionViewDelegate,
UICollectionViewDelegateFlowLayout, UIGestureRecognizerDelegate>

@property(nonatomic, strong) MHTransitionShowDetail *interactivePushTransition;
@property(nonatomic) CGPoint lastPoint;
@property(nonatomic) CGFloat startScale;
@property(strong, nonatomic) NSMutableArray *carImages;

@end

@implementation MainViewController

- (instancetype)init {
self = [super init];
if (self) {
}
return self;
}

- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

_carImages = [@[
@"chevy_small",
@"mini_small",
@"rover_small",
@"smart_small",
@"highlander_small",
@"venza_small",
@"volvo_small",
@"vw_small",
@"ford_small",
@"nissan_small"
] mutableCopy];

self.view = [[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

UICollectionViewFlowLayout *layout =
[[UICollectionViewFlowLayout alloc] init];
layout.itemSize = CGSizeMake(106, 106);
layout.minimumLineSpacing = 1.0;
layout.minimumInteritemSpacing = 1.0;
self.collectionView = [[UICollectionView alloc] initWithFrame:self.view.frame
collectionViewLayout:layout];
[self.collectionView setDataSource:self];
[self.collectionView setDelegate:self];
self.collectionView.alwaysBounceVertical = YES;
[self.collectionView setContentInset:UIEdgeInsetsMake(20, 10, 10, 10)];
[self.collectionView registerClass:[IKGCollectionViewCell class]
forCellWithReuseIdentifier:@"myCell"];
self.collectionView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:self.collectionView];
}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

#pragma CollectionView & FlowLayout methods

- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeMake(120, 120);
}


- (NSInteger)collectionView:(UICollectionView *)collectionView
numberOfItemsInSection:(NSInteger)section {
return self.carImages.count;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath {
IKGCollectionViewCell *cell =
[collectionView dequeueReusableCellWithReuseIdentifier:@"myCell"
forIndexPath:indexPath];
long row = [indexPath row];
UIImage *image = [UIImage imageNamed:self.carImages[row]];
cell.imageView.userInteractionEnabled = YES;
cell.imageView.image = image;
NSLog(@"cell.image view %@", image);
// [self makeCell:(IKGCollectionViewCell *)cell atIndexPath:indexPath];

return cell;
}
}
@end

@interface IKGCollectionViewCell : UICollectionViewCell
@property(nonatomic, strong) UIImageView *imageView;

@end


@implementation IKGCollectionViewCell
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.imageView = [[UIImageView alloc] initWithFrame:self.bounds];
NSLog(@"self.bounds is %@", NSStringFromCGRect(self.bounds));
}
return self;
}

- (void)layoutSubviews {
[super layoutSubviews];
self.imageView.frame = self.contentView.bounds;
}

@end

最佳答案

您错过了将单元格的 imageView 添加为它的 subview 。

所以在cell的initWithFrame

- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.imageView = [[UIImageView alloc] initWithFrame:self.bounds];
//Add imageView as subview
[self addSubview:self.imageView];
NSLog(@"self.bounds is %@", NSStringFromCGRect(self.bounds));
}
return self;
}

关于ios - Imageview 没有出现在以编程方式创建的 Collection View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36929938/

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