• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - CollectionView 单元格滑动以执行操作

[复制链接]
菜鸟教程小白 发表于 2022-12-12 09:43:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

嗨,我正在使用 UICollectionview 水平布局开发社交网络应用程序,当我的应用程序启动 Collection View 时,最多会加载 5 个单元格,然后如果我滑动第 5 个单元格,那么那时只会分配第 6 个单元格内存。以同样的方式将第 6 个单元格滑动到第 7 个单元格。那么,我该如何实现这个过程

提前感谢您的任何建议



Best Answer-推荐答案


您需要向您的 collectionView 添加滑动手势识别器:

UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self actionselector(handleSwipeGesture];
swipeGesture.direction = UISwipeGestureRecognizerDirectionUp;
[collectionView addGestureRecognizer:swipeGesture];

然后,在 handleSwipeGesture: 中处理滑动以分配单元格。

-(void) handleSwipeGestureUISwipeGestureRecognizer *) sender
{
...
}

你可以随意调整滑动方向,这个是向上配置的。

这就是它的全部内容。主要是您不希望方向与滚动方向滑动冲突,因为我认为没有一种干净的方法来处理它。当您水平滚动时,即为滑动,因此您需要使用向上/向下滑动方向。

改为附加到单元格(在单个单元格上捕获手势)我经常使用以下方法为简单的 Collection View 执行此操作:

- (UICollectionViewCell *)collectionViewUICollectionView *)collView cellForItemAtIndexPathNSIndexPath *)indexPath
{
    ...
    UILongPressGestureRecognizer *longPressGestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self actionselector(handleLongPress];
    [cell addGestureRecognizer:longPressGestureRecognizer];
    ...
}

(这是一个长按,但它的工作方式相同)。在将其放入单元格的情况下,您需要在单元格上放置一个标签,然后在处理程序中引用该标签以找出它来自哪个单元格:

这是上面的一个:

- (void) handleLongPress: (UILongPressGestureRecognizer *) sender 
{
    if (sender.state != UIGestureRecognizerStateBegan)
        return;

    CGPoint p = [sender locationInView: collectionView];
    NSIndexPath *indexPath = [collectionView indexPathForItemAtPoint:p];
    if (indexPath != nil)
    {
        UICollectionViewCell* cell = [collectionView cellForItemAtIndexPath:indexPath];
        if (cell)
    {
    int indexOfItem = cell.tag;
        NSLog(@"Selected item = %d", indexOfItem);
    }
}

至少沿着这条线...

关于ios - CollectionView 单元格滑动以执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23509121/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap