我有一个集合视图,它显示排列在名为“claimData”的自定义数据模型(结构)中的数据。
声明数据声明:
struct claimData {
var image = UIImage()
var imageTitle = String()
var hasCustomDescription = Bool()
var customDescription = String()
var isAnInitial = Bool()
var isDamage = Bool()
var isUnrelated = Bool()
var isAnOption = Bool()
var isACondition = Bool()
}
我通过 sharedInstance 共享这些数据的状态,因为我使用的是浮动面板。
class PageDataSource {
var theData: ReviewDataController?
static let sharedInstance = PageDataSource()
private init() {}
}
ReviewDataController 只保存一个名为“tableViewReviewData”的 claimData 数组。
我正在尝试在浮动面板的 collectionView 中实现拖放功能,但我似乎无法让 itemProvider 与我的自定义数据模型一起使用。
这就是我目前所拥有的:
func collectionView(_ collectionView: UICollectionView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] {
let item = PageDataSource.sharedInstance.theData?.tableViewReviewData[indexPath.item]
let itemProvider = NSItemProvider(object: item)
let dragItem = UIDragItem(itemProvider: itemProvider)
dragItem.localObject = item
return [dragItem]
}
这是我为 itemProvider 得到的错误: “Argument type 'claimData?' 不符合预期类型 'NSItemProviderWriting'"
感谢您的帮助,如果您有任何问题,请告诉我!!