只有我第二次使用UICollectionView,也许我已经咬过的东西超过了我可以咀嚼但是:
我正在实现一个UICollectionView(myCollectionView),它使用我已经子类化的自定义UICollectionViewCell.子类化单元格(FullReceiptCell)包含UITableView,并且是viewcontroller的大小.我试图允许FullReceiptCells之间的水平滚动.
包含myCollectionView的子类UICollectionViewController正被推送到导航控制器堆栈.目前,myCollectionView loas和水平滚动已启用.但是,没有细胞可见.我已经证实了这一点
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
Run Code Online (Sandbox Code Playgroud)
已运行并返回一个大于0的整数.我还确认myCollectionView的委托和数据源在IB中正确设置为子类UICollectionViewController.
要加载单元格的方法:
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
Run Code Online (Sandbox Code Playgroud)
没有被召唤.
这是我在该控制器中推送UICollectionViewController和viewDidLoad方法的地方(注意:initWithBill是普通初始化程序的覆盖):
在之前的ViewControllers .m文件中:
FullReceiptViewController *test = [[FullReceiptViewController alloc] initWithBill:currentBill];
test.title = @"Review";
[self.navigationController pushViewController:test animated:YES];
Run Code Online (Sandbox Code Playgroud)
在FullReceiptViewController.m中:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self.myCollectionView registerClass:[FullReceiptCell class] forCellWithReuseIdentifier:@"FullReceiptCellIdentifier"];
self.myCollectionView.pagingEnabled = YES;
// Setup flowlayout
self.myCollectionViewFlowLayout = [[UICollectionViewFlowLayout alloc] init];
[self.myCollectionViewFlowLayout setItemSize:CGSizeMake(320, 548)];
[self.myCollectionViewFlowLayout setSectionInset:UIEdgeInsetsMake(0, 0, 0, 0)];
[self.myCollectionViewFlowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
self.myCollectionViewFlowLayout.minimumLineSpacing = 0;
self.myCollectionViewFlowLayout.minimumInteritemSpacing = …Run Code Online (Sandbox Code Playgroud) 我有一个UITableView自定义单元格包含UIStackView.作为准备新单元格的一部分,当表视图通过其cellForRowAtIndexPath方法添加新单元格时,它会实例化并添加任何集合视图(类型MultaCollectionView)以及任何UILabel需要添加到单元格的堆栈视图中的单元格(单元格可能包含各种集合视图) ).理论上,堆栈视图包含一系列标签和集合视图.
虽然标签显示正确,但是在运行时不显示集合视图.我试图显示的集合视图在.xibInterface Builder文档中定义.
numberOfSectionsInCollectionView调用Collection View的方法,但是collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath)从不调用该方法.
为什么collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath)从不调用该方法?为什么不在堆栈视图中呈现集合视图?
import UIKit
private let reuseIdentifier = "Cell"
class MultaCollectionView: UICollectionView, UICollectionViewDataSource, UICollectionViewDelegateFlowLayout, UICollectionViewDelegate {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self.delegate = self
self.dataSource = self
}
class func instanceFromNib() -> UICollectionView {
return UINib(nibName: "multas", bundle: nil).instantiateWithOwner(nil, options: nil)[0] as! UICollectionView
}
func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> …Run Code Online (Sandbox Code Playgroud)