相关疑难解决方法(0)

未调用UICollectionView的cellForItemAtIndexPath

只有我第二次使用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)

objective-c ios uicollectionview

95
推荐指数
14
解决办法
8万
查看次数

未显示集合视图,从不调用cellForItemAtIndexPath

我有一个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)

ios swift xcode7

5
推荐指数
1
解决办法
7201
查看次数

标签 统计

ios ×2

objective-c ×1

swift ×1

uicollectionview ×1

xcode7 ×1