diff --git a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate index 76ad8e0..8675a63 100644 Binary files a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate and b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index bd9cb35..4041906 100644 --- a/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/SwiftProject/SwiftProject.xcworkspace/xcuserdata/aaa.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -942,8 +942,8 @@ filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "225" - endingLineNumber = "225" + startingLineNumber = "227" + endingLineNumber = "227" landmarkName = "screenOrientationRotate()" landmarkType = "7"> @@ -990,8 +990,8 @@ filePath = "SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift" startingColumnNumber = "9223372036854775807" endingColumnNumber = "9223372036854775807" - startingLineNumber = "233" - endingLineNumber = "233" + startingLineNumber = "235" + endingLineNumber = "235" landmarkName = "screenOrientationRotate()" landmarkType = "7"> diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift index 7203395..10e7edf 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayController.swift @@ -137,10 +137,12 @@ class CCSpatialPhotoDisplayController: BaseController { return button }() + let imgH = 340.0 + lazy var mImgView:UIImageView = { let imageView = UIImageView() - imageView.frame = CGRect.init(x: 0, y: 250, width: self.view.frame.size.width, height: 240) + imageView.frame = CGRect.init(x: 0, y: 250, width: self.view.frame.size.width, height: imgH) imageView.contentMode = .scaleAspectFit imageView.backgroundColor = UIColor.black @@ -213,7 +215,7 @@ class CCSpatialPhotoDisplayController: BaseController { make.top.equalToSuperview().offset(0) } mImgView.snp.updateConstraints { make in - make.height.equalTo(240) + make.height.equalTo(imgH) } edBtn!.snp.updateConstraints { make in make.centerY.equalTo((edBtn?.superview!.snp.bottom)!).offset( -120) @@ -342,7 +344,7 @@ class CCSpatialPhotoDisplayController: BaseController { self.view.addSubview(mImgView) mImgView.snp.makeConstraints { make in make.left.right.equalToSuperview() - make.height.equalTo(240) + make.height.equalTo(imgH) make.centerY.equalToSuperview() } self.view.addSubview(imgMaskView) @@ -511,7 +513,9 @@ class CCSpatialPhotoDisplayController: BaseController { if(selectedIndex == 1){ //空间照片 --- 单眼2D(展示原照片或者广角或者主摄其中一个) let image = UIImage(data: photoOriginalData!) - mImgView.image = monocular2DImgWith(drawImg: image!, scale: currentScale) + monocular2DImgWith(drawImg: image!, scale: currentScale,callback: {[weak self] image in + self?.mImgView.image = image + }) }else { guard let imageSource = CGImageSourceCreateWithData(imgData! as CFData, nil) else { diff --git a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayEx.swift b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayEx.swift index 27ef699..dcffb34 100644 --- a/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayEx.swift +++ b/SwiftProject/SwiftProject/Project/Controller/RecordingVideo/CCSpatialPhotoDisplayController/CCSpatialPhotoDisplayEx.swift @@ -28,10 +28,14 @@ extension CCSpatialPhotoDisplayController { if sender.state == .began { temScale = 1.0 } - - currentScale = currentScale - (temScale - sender.scale) - currentScale = min(currentScale, 1.8) - currentScale = max(currentScale, 0.3) + var ctemS = currentScale - (temScale - sender.scale) + if abs(currentScale - ctemS) < 0.1 { + return + } + //currentScale - (temScale - sender.scale) + ctemS = min(ctemS, 1.8) + ctemS = max(ctemS, 0.3) + currentScale = ctemS temScale = sender.scale print("\(sender.scale) currentScale....\(currentScale)") } @@ -58,19 +62,23 @@ extension CCSpatialPhotoDisplayController { } //单眼2D - func monocular2DImgWith(drawImg:UIImage,scale:CGFloat)->UIImage { + func monocular2DImgWith(drawImg:UIImage,scale:CGFloat, callback:@escaping (_ image:UIImage)->Void) { if scale > 1 || scale < 1 { - let drawImageSize = drawImg.size - let newImgSize = CGSizeMake(drawImageSize.width * scale, drawImageSize.height * scale) - let newRect = CGRect(origin: CGPoint(x: (drawImageSize.width - newImgSize.width) * 0.5, y: (drawImageSize.height - newImgSize.height) * 0.5), size: newImgSize) - UIGraphicsBeginImageContextWithOptions(drawImageSize, false, 1); - drawImg.draw(in: newRect) - let image = UIGraphicsGetImageFromCurrentImageContext()! - UIGraphicsEndImageContext(); - return image + DispatchQueue.global(qos: DispatchQoS.QoSClass.userInteractive).async { + let drawImageSize = drawImg.size + let newImgSize = CGSizeMake(drawImageSize.width * scale, drawImageSize.height * scale) + let newRect = CGRect(origin: CGPoint(x: (drawImageSize.width - newImgSize.width) * 0.5, y: (drawImageSize.height - newImgSize.height) * 0.5), size: newImgSize) + UIGraphicsBeginImageContextWithOptions(drawImageSize, false, 1); + drawImg.draw(in: newRect) + let image = UIGraphicsGetImageFromCurrentImageContext()! + UIGraphicsEndImageContext(); + DispatchQueue.main.async { + callback(image) + } + } } else { - return drawImg + callback(drawImg) } }