首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UICollectionView拖放删除半透明单元格

UICollectionView拖放删除半透明单元格
EN

Stack Overflow用户
提问于 2019-01-10 15:48:59
回答 2查看 883关注 0票数 2

我正在使用iOS 11拖放应用程序接口进行重新排序,并希望删除开始拖动时出现的半透明单元格。有可能吗?对于拖动,我只使用UICollectionViewDragDelegate的必需方法:

代码语言:javascript
复制
- (nonnull NSArray<UIDragItem *> *)collectionView:(nonnull UICollectionView *)collectionView
                     itemsForBeginningDragSession:(nonnull id<UIDragSession>)session
                                      atIndexPath:(nonnull NSIndexPath *)indexPath {
    NSItemProvider *itemProvider = [NSItemProvider new];
    UIDragItem *dragItem = [[UIDragItem alloc] initWithItemProvider:itemProvider];

    return @[dragItem];
}

EN

回答 2

Stack Overflow用户

发布于 2020-01-31 00:04:10

您可以在拖放生命周期中通过覆盖dragStateDidChange(_ dragState: UICollectionViewCell.DragState)来自定义单元格

代码语言:javascript
复制
class MyCell: UICollectionViewCell {

    //...
    override func dragStateDidChange(_ dragState: UICollectionViewCell.DragState) {

        switch dragState {
        case .none:
            self.layer.opacity = 1
        case .lifting:
            return
        case .dragging:
            self.layer.opacity = 0

        }
    }
}
票数 2
EN

Stack Overflow用户

发布于 2020-09-23 00:16:38

在你的单元格类上重写这个方法:

代码语言:javascript
复制
override func dragStateDidChange(_ dragState: UICollectionViewCell.DragState) {

    switch dragState {
    case .none:

        self.layer.opacity = 1

    case .lifting:

        return

    case .dragging:

        self.layer.opacity = 0
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54124018

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档