我正在使用Custom CollectionView Cell实现自定义集合视图。
这是我对CollectionView的实现。
- (void)setUpCollectionView{
[self.view setNeedsLayout];
[self.view layoutIfNeeded];
[self.vwCarCollection setDataSource:self];
[self.vwCarCollection setDelegate:self];
[self.vwCarCollection registerClass:[FindMyCarCell class] forCellWithReuseIdentifier:@"FindMyCarCell"];
[self.vwCarCollection setBackgroundColor:[UIColor redColor]];
[self.vwCarCollection reloadData];
[self.vwCarCollection reloadInputViews];
}
我在" ViewDidLoad"。
上调用了此功能这是我对UICollectionViewDataSource
的实现- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
FindMyCarCell *cell = (FindMyCarCell *)[self.vwCarCollection dequeueReusableCellWithReuseIdentifier:@"FindMyCarCell" forIndexPath:indexPath];
cell.vwImgMain.image = [UIImage imageNamed:@"sample_car"];
cell.lblCarNo.text = @"GH2334343";
return cell;
}
当我调试我的代码时,单元格实例就像这样
<FindMyCarCell: 0x78645b30; baseClass = UICollectionViewCell; frame = (302 50; 221 180); layer = <CALayer: 0x786a07a0>>
但是当我尝试更新自定义单元格的图像视图时,它只返回我的图像视图为零。 我的实施有什么问题。有谁能建议我?感谢。
答案 0 :(得分:0)
将图像视图添加到单元格时可能会出现一些错误。如果您已在Storyboard中创建了单元格,则不要在viewDidLoad中注册您的单元格类。而是在Storyboard中设置重用标识符,然后使用自定义集合视图单元类的框架方法将您的图像视图添加到init中。
答案 1 :(得分:0)
尝试调用 viewDidApppear 。
>> fun = @(theta, xdata) theta(1) + ...
(xdata<=theta(2)) .* theta(3) .* xdata + ...
(xdata>theta(2)) .* (theta(3) * theta(2) + ...
(theta(3)+theta(4)) .* (xdata-theta(2)))
>> theta = lsqcurvefit(fun, [0; 15; 0; 1], xdata, ydata, [-Inf, -Inf, 0, 0], [])
theta =
18.1162
18.1159
0.0000
0.9944
答案 2 :(得分:0)
如果您使用的是xib文件,请致电
[self.vwCarCollection registerNib:[UInib nibWithNibName:@"FindMyCarCell" bundle:nil] forCellWithReuseIdentifier:@"FindMyCarCell"];
而不是
[self.vwCarCollection registerClass:[FindMyCarCell class] forCellWithReuseIdentifier:@"FindMyCarCell"];
原因是当您致电registerClass
时,您的FindMyCarCell
将通过调用initWithFrame
进行初始化,而您没有通过这种方式实现init您的imageView。当您调用registerNib时,堆栈调用将通过调用FindMyCarCell
来初始化awakeFromNib
(因此将创建imageView)。