简体   繁体   中英

Horizontal UICollectionView in UITableView not scrolling

In my project, I have a UITableView with different types of cells. One of these cells contains a horizontally scrolling UICollectionView .

When I run my project, the UICollectionView is correctly populated, but I cannot scroll horizontally, clicking and dragging inside this UICollectionView only allows for me to scroll the tableview vertically.

The desired behaviour would be that a click inside the cell with the UICollectionView would allow the user to scroll horizontally, clicking in any other cell allows for vertical scrolling.

I'm assuming that I need to overwrite/pass on or disable some OnClick event in this cell however I cannot find the correct solution.

Any help pointing me in the good direction would be greatly appreciated :)

The code for creating the concerning TableViewCell looks like this.

@property(nonatomic) HorizontalCollectionViewDelegate *horizontalCollectionViewDelegate;
- (UITableViewCell *) createHorizontalScrollCell:(NSIndexPath *)indexPath tableView:(UITableView *)tableView{
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:myCellIdentifier];
        MyHorizontalScrollingTableCell *myHorizontalScrollingTableCell = (MyHorizontalScrollingTableCell *)cell;

        UICollectionView *horizontalCollectionView = myHorizontalScrollingTableCell.myHorizontalCollectionView;

        //Link collectionView to its delegate
        self.horizontalCollectionViewDelegate = [[HorizontalCollectionViewDelegate alloc] init];
        horizontalCollectionView.delegate = _horizontalCollectionViewDelegate;
        horizontalCollectionView.dataSource = _horizontalCollectionViewDelegate;
        _horizontalCollectionViewDelegate.data = myData;

        //Define the cells in HorizontalCollectionView
        UINib *cellNib = [UINib nibWithNibName:@"CollectionViewCell" bundle:nil];
        [horizontalCollectionView registerNib:cellNib forCellWithReuseIdentifier:@"horizCell"];

        //Define flow of AttachmentsCollectionView
        UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
        [flowLayout setItemSize:CGSizeMake(90, 90)];
        [flowLayout setScrollDirection:UICollectionViewScrollDirectionHorizontal];
        [horizontalCollectionView setCollectionViewLayout:flowLayout];

        return cell;
    }

EDIT : I'm using the same HorizontalCollectionViewDelegate elsewhere in my project (just not in a tableview) and over there it is working, so I assume the problem is not there.

EDIT 2 : Problem solved, turns out there wasn't a problem (see answer below), will be accepting my answer in two days when I can.

Solved...

Turned out I only needed to add more content to the UICollectionView .

With 2 or 3 elements the Cells did not fill the complete view. Because the swipe animation was not showing I assumed there was an error somewhere.

However just adding more content solved this issue.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM