gpt4 book ai didi

ios - 单击 Collection View 单元格时如何获取 TableView 部分

转载 作者:行者123 更新时间:2023-11-29 11:43:15 24 4
gpt4 key购买 nike

[![在此处输入图片描述][1]][1]

我有一个 tableview。在那个 tableview 中,我需要在不同的部分显示 Collection View 。我采用原型(prototype)类型 tableview 单元格并显示 Collection View 。我对该 tableview 中的不同部分使用相同的 Collection View 。当我单击 Collection View 单元格时,我得到了 Collection View 部分和 indexPath,但我如何才能获得 TableView 部分和 indexPath 行?

#pragma mark- UITableView Delegate & Datasource methods
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{

if (section == 0) {
return 1;
}
else if (section == 1) {
return 1;
}
else if (section == 2) {
return 1;
}
else
return 1;

}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView{

return 4;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{

if (indexPath.section == 0) {
return 128;
}
else if (indexPath.section == 1) {
return 321;
}
else if (indexPath.section == 2) {
return 321;
}
else
return 262;
}
- (nullable NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section{

NSString *sectionName;
switch (section) {
case 0:
sectionName = @"";
break;
case 1:
sectionName = @"Features Products";
break;
case 2:
sectionName = @"New Products";
break;
case 3:
sectionName = @"";
break;
default:
break;
}
return sectionName;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{


FeaturesTableViewCell *featureCell;
CustomTableViewCell *cell;
CustomTableViewCell *normalCell;
FashionTableViewCell *fashionCell;

if (indexPath.section==0) {
featureCell = [tableView dequeueReusableCellWithIdentifier:@"FeaturesCell"];

if (featureCell==nil) {

featureCell = [[FeaturesTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"FeaturesCell"];
}

return featureCell;
}
else if (indexPath.section==1) {

cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell"];
if (cell==nil)
{
cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CustomTableViewCell"];
}
cell.superIndexPath = indexPath;

return cell;

}
else if (indexPath.section==2) {

normalCell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell"];
if (normalCell==nil)
{
normalCell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CustomTableViewCell"];
}
cell.superIndexPath = indexPath;

return normalCell;

}
else{
fashionCell = (FashionTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"FashionTableViewCell"];
if (fashionCell==nil)
{
fashionCell = [[FashionTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"FashionTableViewCell"];
}
return fashionCell;

}

}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

NSLog(@"UITableView Selected index----%ld",indexPath.row);


}



#import <UIKit/UIKit.h>
#import <Foundation/NSObject.h>
#import <Foundation/Foundation.h>

@interface CustomTableViewCell : UITableViewCell<UICollectionViewDelegate,UICollectionViewDataSource,UICollectionViewDelegateFlowLayout>

@property (weak, nonatomic) IBOutlet UICollectionView *collectionView;
@property (strong ,nonatomic) NSIndexPath *superIndexPath;

@end


#import "CustomTableViewCell.h"

@implementation CustomTableViewCell
@synthesize superIndexPath;
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
self.collectionView.delegate = self;
self.collectionView.dataSource = self;
}

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
[super setSelected:selected animated:animated];

// Configure the view for the selected state
}
#pragma mark- UICollectionView Delegate & Datasource methods
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{
NSUInteger numberOfSections= 0;
numberOfSections = 1;
return numberOfSections;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section{
NSUInteger numberOfItems= 0;
numberOfItems = 6;
return numberOfItems;

}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{

UICollectionViewCell *cell = (UICollectionViewCell *)[collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];

UIImageView *imgView = (UIImageView *) [cell viewWithTag:1000];
imgView.image = [UIImage imageNamed:@"slideImage1"];
[cell.contentView addSubview:imgView];


return cell;


}

- (void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath{


NSLog(@"Selected superIndexPath section---------%ld",(long)superIndexPath.section);
NSLog(@"Selected superIndexPath.row---------%ld",superIndexPath.row);


}

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumLineSpacingForSectionAtIndex:(NSInteger)section {
return 0.0f;
}
- (UIEdgeInsets)collectionView:(UICollectionView*)collectionView layout:(UICollectionViewLayout *)collectionViewLayout insetForSectionAtIndex:(NSInteger)section {
return UIEdgeInsetsMake(0, 0, 0, 0);
}

- (CGFloat)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout minimumInteritemSpacingForSectionAtIndex:(NSInteger)section {
return 0.0f;
}

@end

最佳答案

您可以在 CustomTableViewCell 中添加一个属性,例如 superIndexPath。并将属性设置为 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 就像

cell = (CustomTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"CustomTableViewCell"];
if (cell==nil)
{
cell = [[CustomTableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CustomTableViewCell"];
}
cell.superIndexPath = indexPath;

return cell;

并且当您尝试通过使用 self.superIndexPath.

关于ios - 单击 Collection View 单元格时如何获取 TableView 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45295136/

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