UIDragInteraction无previewForLifting成员报错及内容不显示求助
UIDragInteraction编译错误及界面不显示问题解决
一、解决UIDragInteraction无previewForLifting成员的编译错误
previewForLifting不是UIDragInteraction的直接属性,它是通过UIDragInteractionDelegate协议的方法来提供拖拽预览的,正确实现步骤如下:
- 让你的视图控制器或承载视图遵循
UIDragInteractionDelegate协议 - 实现
dragInteraction(_:previewForLiftingItem:session:)方法,在方法内返回自定义的拖拽预览视图 - 给
UIDragInteraction实例设置代理对象
示例代码:
class YourViewController: UIViewController, UIDragInteractionDelegate { override func viewDidLoad() { super.viewDidLoad() let dragInteraction = UIDragInteraction(delegate: self) // 给需要添加拖拽交互的视图绑定该interaction yourContentVeiw.addInteraction(dragInteraction) } func dragInteraction(_ interaction: UIDragInteraction, previewForLiftingItem item: UIDragItem, session: UIDragSession) -> UITargetedDragPreview? { // 这里创建并返回你的预览视图,比如基于现有视图生成 let preview = UITargetedDragPreview(view: yourPreviewView) return preview } }
二、移除错误语句后界面仍不显示内容的排查方向
- 检查内容视图是否正确添加到父视图,Auto Layout约束是否设置合理(比如约束缺失导致视图位置偏移或尺寸为0)
- 确认内容视图的
isHidden属性是否为true,或alpha值被设为0 - 检查内容视图背景色是否和父视图一致,导致视觉上无法区分
- 如果是动态加载的内容,确认数据是否已正常加载并渲染到视图上
- 排查是否有层级更高的视图遮挡了当前内容视图
内容的提问来源于stack exchange,提问作者BlackFox
相关产品推荐
相关产品推荐

