gpt4 book ai didi

ios - 以编程方式添加 UICollectionViewLayout 问题

转载 作者:行者123 更新时间:2023-11-29 02:12:54 25 4
gpt4 key购买 nike

我正在尝试实现 this library不使用 Storyboard(实现此库的第一步),因为我正在以编程方式创建我的 UIcollectionView。

    - (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
//self.view.backgroundColor = [UIColor whiteColor];
[self.view addSubview:self.collectionView];

[_collectionView registerNib:[UINib nibWithNibName:@"myCell" bundle:nil] forCellWithReuseIdentifier:@"cell3"];
[_collectionView setBackgroundColor:[UIColor colorWithRed:0.945 green:0.945 blue:0.945 alpha:1] ];
[_collectionView setTransform:CGAffineTransformMakeScale(-1, 1)];

RFQuiltLayout* layout = (id)[_collectionView collectionViewLayout];
layout.direction = UICollectionViewScrollDirectionVertical;
layout.blockPixels = CGSizeMake(100, 100);
}


- (UICollectionView *)collectionView {
if (!_collectionView) {
CGRect collectionViewFrame = self.view.bounds;
collectionViewFrame.size.height -= (self.navigationController.viewControllers.count > 1 ? 0 : (CGRectGetHeight(self.tabBarController.tabBar.bounds))) + 0;
// FMMosaicLayout *mosaicLayout = [[FMMosaicLayout alloc] init];
//// _collectionView = [[UICollectionView alloc] initWithFrame:collectionViewFrame collectionViewLayout:mosaicLayout];
// RFQuiltLayout* layout = (id)[_collectionView collectionViewLayout];
// layout.direction = UICollectionViewScrollDirectionVertical;
// layout.blockPixels = CGSizeMake(100, 100);
_collectionView = [[UICollectionView alloc] initWithFrame:collectionViewFrame collectionViewLayout:[[RFQuiltLayout alloc] init]];
_collectionView.delegate = self;
_collectionView.dataSource = self;

}
return _collectionView;
}

但这没有用,我的 View 中没有显示任何内容(没有错误和空 View ,仅此而已)我还使用调试器通知从未调用 UICollectionView 方法

最佳答案

首先,您的 collectionView 方法没有被调用,因为您在 viewDidLoad 方法中使用的是 _collectionView 而不是 self.collectionView。您需要为每个属性编写 self 以调用它们的 setter 和 getter 方法。

其次,如果你想在没有XIB Storyboard的情况下添加自定义布局,那么你需要以编程方式设置它:

RFQuiltLayout* layout = [[RFQuiltLayout alloc] init];
layout.direction = UICollectionViewScrollDirectionVertical;
layout.blockPixels = CGSizeMake(100, 100);
self.collectionView.collectionViewLayout = layout;

关于ios - 以编程方式添加 UICollectionViewLayout 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29087515/

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