我首先创建一个UIImageView 创建后,此UIImageView不会旋转,因此我将此状态称为Original Rotation 然后旋转UIImageView 图像现在有了旋转,我将此状态称为New Rotation 为了完成所有操作,我将图像拖到同一视图中的其他位置。

我目前有以下用于拖动的委托函数:

func dragInteraction(_ interaction: UIDragInteraction, itemsForBeginning session: UIDragSession) -> [UIDragItem] {
    let touchedPoint = session.location(in: self.view)
    if let touchedImageView = self.view.hitTest(touchedPoint, with: nil) as? UIImageView {
        let touchedImage = touchedImageView.image

        let itemProvider = NSItemProvider(object: touchedImage!)
        let dragItem = UIDragItem(itemProvider: itemProvider)
        dragItem.localObject = touchedImageView
        return [dragItem]
    }
    return []
}
func dragInteraction(_ interaction: UIDragInteraction, previewForLifting item: UIDragItem, session: UIDragSession) -> UITargetedDragPreview? {
    return UITargetedDragPreview(view: item.localObject as! UIImageView)
}
func dragInteraction(_ interaction: UIDragInteraction, willAnimateLiftWith animator: UIDragAnimating, session: UIDragSession) {
    session.items.forEach {(dragItem) in
        if let touchedImageView = dragItem.localObject as? UIView {
            touchedImageView.removeFromSuperview()
        }
    }
}

启动拖动过程后,正在拖动的图像会抬起,并且显示的预览将保留“ New Rotation 但是,当我开始移动手指并且预览开始随之移动时,预览会丢失New Rotation ,而显示Original Rotation 拖动时如何使预览保留“ New Rotation

  ask by AJ Z. translate from so

本文未有回复,本站智能推荐:

2回复

能够缩短UIDragInteraction的长按时间

我目前正在使用iOS 11中提供的UIDragInteraction和UIDropInteraction来创建一个简单的拖放功能,用户可以将UIImageView拖到UIView上。 我意识到一个不直观的因素是UIDragInteraction需要长按至少一秒才能工作。 我想知道是否有办法
1回复

在iOS11.2上预览PDF文件

我遇到了一个错误,该错误使我的应用无法使用UIDocumentInteractionController或QLPreviewController显示PDF: https : QLPreviewController 根据建议,解决方案是将文件复制到文档或tmp文件夹并从那里加载文件。 但是
1回复

哪一个更好?UIPanGesture?还是UIDragInteraction/UIDropInteraction?

我正在尝试制作纸牌游戏应用(快4)像纸牌纸牌游戏。 因此,我必须对每个Card UIView使用拖放功能。 但是我认为可以使用两种方式进行拖动。 UIPanGesture和UIDragInteraction / UIDropInteraction之间哪个更好? 此外,我不确定平移的
1回复

iOS11设备方向自动旋转

对于iOS 10及更低版本,以下代码控制了任何相应UIViewController的方向。 我在部署信息中选择了Portrait , Landscape Left和Landscape Right ,并在我的Info.plist中有以下内容: 对于那些根本不应该旋转的VC,我有以下代码,
3回复

获取拖动预览的帧

我正在使用 iOS 11 中引入的新 Apple API 在UICollectionView上实现拖放。 我需要的是获得一帧拖动预览(见下文,红色矩形) 我试图获得拖动的位置: 但它仅代表我手指的位置。 我需要获取整个框架,或者至少是它的原点。 我还尝试将触摸的y位置存储在我的单元格中,然后执行诸
1回复

在IOS11中旋转设备时,UIToolbar左右间距

自iOS11起,UIToolbar的填充出现了一个奇怪的问题。 旋转设备时,工具栏的左右填充变大(下面的示例)。 旋转之前设备是处于纵向还是横向模式都没有关系。 额外的间距仅在旋转后出现。 我认为这是一个自动调整大小的问题。 旋转前查看调试器(正确的间距): https : //w
1回复

保持节点的X轴和Z轴平行于地面,同时旋转Y轴以面对相机

我试图让 SCNNode 始终距相机前部一米,并操纵节点以使 X 轴和 Z 轴始终与地面平行,同时节点围绕 Y 轴旋转,以便节点总是面对相机。 下面的代码在很大程度上实现了我的目标,但是当顺时针或逆时针旋转超过 90˚ 时,节点开始旋转。 我该如何解决?
1回复

处于预览模式的AppleARKit当前支持哪些设备?

我正在尝试使用Apple的新ARKit,并将其示例ARKitExample项目下载到Xcode 9(测试版)中。 由于ARKit在Apple模拟器中无法运行,因此我试图将该ARKitExample应用存档,导出并安装到我的iPhone 7+上,因此我可以作为实际用户实际使用ARKit进行测试