【发布时间】:2015-12-12 15:06:15
【问题描述】:
我需要前两个小单元格,第二个大单元格,再两个小单元格,两个大单元格。 我曾尝试使用下面的代码。但它没有给我正确的输出。其他任何易于实现的第三方库。急切地等待这个问题的答案。
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
if (collectionView == _CollectionSale) {
if (small && j != 2){
j++;
if(j==2){
small = false;
k = 0;
}
HomeSaleCC *objHomeSaleCC=[collectionView dequeueReusableCellWithReuseIdentifier:@"HomeSaleCC" forIndexPath:indexPath];
return objHomeSaleCC;
}else if(!small && k !=2){
k++;
if(k==2){
small = true;
j = 0;
}
HomeSaleCC2 *objHomeSaleCC2=[collectionView dequeueReusableCellWithReuseIdentifier:@"HomeSaleCC2" forIndexPath:indexPath];
return objHomeSaleCC2;
}
HomeSaleCC *objHomeSaleCC=[collectionView dequeueReusableCellWithReuseIdentifier:@"HomeSaleCC" forIndexPath:indexPath];
return objHomeSaleCC;
}
else{
HomeTabCC *objHomeTabCC=[collectionView dequeueReusableCellWithReuseIdentifier:@"HomeTabCC" forIndexPath:indexPath];
[objHomeTabCC.btnSale setTitle:[arrTitle objectAtIndex:indexPath.row] forState:UIControlStateNormal];
[objHomeTabCC.btnSale setTitleColor:[UIColor orangeColor] forState:UIControlStateSelected];
if (indexPath.row == i) {
objHomeTabCC.viewLine.hidden =NO;
objHomeTabCC.btnSale.selected =YES;
}
else{
objHomeTabCC.viewLine.hidden =YES;
objHomeTabCC.btnSale.selected =NO;
}
return objHomeTabCC;
}
}
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath{
if (collectionView == _CollectionSale) {
if (small && j != 2){
j++;
if(j==2){
small = false;
k = 0;
}
return CGSizeMake(153, 186);
}
else if(!small && k !=2){
k++;
if(k==2){
small = true;
j = 0;
}
return CGSizeMake(260, 186);
}else{
return CGSizeMake(260, 186);
}
}
else{
return CGSizeMake(260, 186);
}
}
【问题讨论】:
-
您的开始是错误的 - 您不应该使用固定尺寸,而是根据要显示的图像尺寸使用动态尺寸。还有更好的变量命名,small、k和j是干什么的?
-
我不需要图像大小的单元格,我需要固定前两个小,而不是两个大
-
我对此表示怀疑。您实际上只需要阅读有关如何使用集合视图委托方法的内容。其余的都很简单直接。
-
你能帮我添加一些代码吗?
标签: ios objective-c uicollectionview