diff --git a/.swiftpm/xcode/package.xcworkspace/xcuserdata/wz.xcuserdatad/UserInterfaceState.xcuserstate b/.swiftpm/xcode/package.xcworkspace/xcuserdata/wz.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..9cd0fb1 Binary files /dev/null and b/.swiftpm/xcode/package.xcworkspace/xcuserdata/wz.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Cliptest.xcodeproj/project.pbxproj b/Cliptest.xcodeproj/project.pbxproj index aec95be..d5fc46d 100644 --- a/Cliptest.xcodeproj/project.pbxproj +++ b/Cliptest.xcodeproj/project.pbxproj @@ -13,14 +13,26 @@ 0029D82C267AE11A004B9CD7 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0029D82A267AE11A004B9CD7 /* Main.storyboard */; }; 0029D82E267AE11C004B9CD7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0029D82D267AE11C004B9CD7 /* Assets.xcassets */; }; 0029D831267AE11C004B9CD7 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 0029D82F267AE11C004B9CD7 /* LaunchScreen.storyboard */; }; - 0029D839267AE12E004B9CD7 /* ZYQuadRangleClipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0029D838267AE12E004B9CD7 /* ZYQuadRangleClipView.swift */; }; - 0029D83B267AFE3F004B9CD7 /* ZYClipMathTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0029D83A267AFE3F004B9CD7 /* ZYClipMathTool.swift */; }; - 0029D83D267B1B78004B9CD7 /* ZYClipImageTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0029D83C267B1B78004B9CD7 /* ZYClipImageTool.swift */; }; - 0029D841267B22C2004B9CD7 /* xxxas.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 0029D840267B22C2004B9CD7 /* xxxas.jpg */; }; - 1AD58939268582A9001EF177 /* ZYClipPointView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1AD58938268582A9001EF177 /* ZYClipPointView.swift */; }; - 3517646C2807C2E40095BA3D /* ZYMaginifierglass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3517646B2807C2E40095BA3D /* ZYMaginifierglass.swift */; }; + 35B7F2BB289D2337002942E4 /* ZYQuadRangleClipView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B7F2B6289D2337002942E4 /* ZYQuadRangleClipView.swift */; }; + 35B7F2BC289D2337002942E4 /* ZYClipPointView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B7F2B7289D2337002942E4 /* ZYClipPointView.swift */; }; + 35B7F2BD289D2337002942E4 /* ZYClipMathTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B7F2B8289D2337002942E4 /* ZYClipMathTool.swift */; }; + 35B7F2BE289D2337002942E4 /* ZYClipImageTool.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B7F2B9289D2337002942E4 /* ZYClipImageTool.swift */; }; + 35B7F2BF289D2337002942E4 /* ZYMaginifierglass.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35B7F2BA289D2337002942E4 /* ZYMaginifierglass.swift */; }; /* End PBXBuildFile section */ +/* Begin PBXCopyFilesBuildPhase section */ + 35B7F2B0289D211A002942E4 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 0029D821267AE11A004B9CD7 /* Cliptest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Cliptest.app; sourceTree = BUILT_PRODUCTS_DIR; }; 0029D824267AE11A004B9CD7 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -30,12 +42,12 @@ 0029D82D267AE11C004B9CD7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 0029D830267AE11C004B9CD7 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 0029D832267AE11C004B9CD7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 0029D838267AE12E004B9CD7 /* ZYQuadRangleClipView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZYQuadRangleClipView.swift; sourceTree = ""; }; - 0029D83A267AFE3F004B9CD7 /* ZYClipMathTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZYClipMathTool.swift; sourceTree = ""; }; - 0029D83C267B1B78004B9CD7 /* ZYClipImageTool.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZYClipImageTool.swift; sourceTree = ""; }; - 0029D840267B22C2004B9CD7 /* xxxas.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = xxxas.jpg; sourceTree = ""; }; - 1AD58938268582A9001EF177 /* ZYClipPointView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZYClipPointView.swift; sourceTree = ""; }; - 3517646B2807C2E40095BA3D /* ZYMaginifierglass.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ZYMaginifierglass.swift; sourceTree = ""; }; + 35B7F2B6289D2337002942E4 /* ZYQuadRangleClipView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZYQuadRangleClipView.swift; sourceTree = ""; }; + 35B7F2B7289D2337002942E4 /* ZYClipPointView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZYClipPointView.swift; sourceTree = ""; }; + 35B7F2B8289D2337002942E4 /* ZYClipMathTool.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZYClipMathTool.swift; sourceTree = ""; }; + 35B7F2B9289D2337002942E4 /* ZYClipImageTool.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZYClipImageTool.swift; sourceTree = ""; }; + 35B7F2BA289D2337002942E4 /* ZYMaginifierglass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ZYMaginifierglass.swift; sourceTree = ""; }; + 35B7F2C0289D250D002942E4 /* Cliptest.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Cliptest.entitlements; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -68,8 +80,8 @@ 0029D823267AE11A004B9CD7 /* Cliptest */ = { isa = PBXGroup; children = ( - 1AD5893726857BD0001EF177 /* ZYQuadRangleClip */, - 0029D840267B22C2004B9CD7 /* xxxas.jpg */, + 35B7F2C0289D250D002942E4 /* Cliptest.entitlements */, + 35B7F2B5289D2337002942E4 /* Source */, 0029D824267AE11A004B9CD7 /* AppDelegate.swift */, 0029D826267AE11A004B9CD7 /* SceneDelegate.swift */, 0029D828267AE11A004B9CD7 /* ViewController.swift */, @@ -81,17 +93,17 @@ path = Cliptest; sourceTree = ""; }; - 1AD5893726857BD0001EF177 /* ZYQuadRangleClip */ = { + 35B7F2B5289D2337002942E4 /* Source */ = { isa = PBXGroup; children = ( - 0029D838267AE12E004B9CD7 /* ZYQuadRangleClipView.swift */, - 1AD58938268582A9001EF177 /* ZYClipPointView.swift */, - 0029D83C267B1B78004B9CD7 /* ZYClipImageTool.swift */, - 0029D83A267AFE3F004B9CD7 /* ZYClipMathTool.swift */, - 3517646B2807C2E40095BA3D /* ZYMaginifierglass.swift */, + 35B7F2B6289D2337002942E4 /* ZYQuadRangleClipView.swift */, + 35B7F2B7289D2337002942E4 /* ZYClipPointView.swift */, + 35B7F2B8289D2337002942E4 /* ZYClipMathTool.swift */, + 35B7F2B9289D2337002942E4 /* ZYClipImageTool.swift */, + 35B7F2BA289D2337002942E4 /* ZYMaginifierglass.swift */, ); - path = ZYQuadRangleClip; - sourceTree = ""; + path = Source; + sourceTree = SOURCE_ROOT; }; /* End PBXGroup section */ @@ -103,6 +115,7 @@ 0029D81D267AE11A004B9CD7 /* Sources */, 0029D81E267AE11A004B9CD7 /* Frameworks */, 0029D81F267AE11A004B9CD7 /* Resources */, + 35B7F2B0289D211A002942E4 /* Embed Frameworks */, ); buildRules = ( ); @@ -119,7 +132,7 @@ 0029D819267AE11A004B9CD7 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1250; + LastSwiftUpdateCheck = 1340; LastUpgradeCheck = 1250; TargetAttributes = { 0029D820267AE11A004B9CD7 = { @@ -136,6 +149,8 @@ Base, ); mainGroup = 0029D818267AE11A004B9CD7; + packageReferences = ( + ); productRefGroup = 0029D822267AE11A004B9CD7 /* Products */; projectDirPath = ""; projectRoot = ""; @@ -150,7 +165,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 0029D841267B22C2004B9CD7 /* xxxas.jpg in Resources */, 0029D831267AE11C004B9CD7 /* LaunchScreen.storyboard in Resources */, 0029D82E267AE11C004B9CD7 /* Assets.xcassets in Resources */, 0029D82C267AE11A004B9CD7 /* Main.storyboard in Resources */, @@ -164,14 +178,14 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 0029D839267AE12E004B9CD7 /* ZYQuadRangleClipView.swift in Sources */, - 0029D83B267AFE3F004B9CD7 /* ZYClipMathTool.swift in Sources */, - 3517646C2807C2E40095BA3D /* ZYMaginifierglass.swift in Sources */, - 0029D83D267B1B78004B9CD7 /* ZYClipImageTool.swift in Sources */, + 35B7F2BD289D2337002942E4 /* ZYClipMathTool.swift in Sources */, 0029D829267AE11A004B9CD7 /* ViewController.swift in Sources */, + 35B7F2BF289D2337002942E4 /* ZYMaginifierglass.swift in Sources */, 0029D825267AE11A004B9CD7 /* AppDelegate.swift in Sources */, + 35B7F2BC289D2337002942E4 /* ZYClipPointView.swift in Sources */, 0029D827267AE11A004B9CD7 /* SceneDelegate.swift in Sources */, - 1AD58939268582A9001EF177 /* ZYClipPointView.swift in Sources */, + 35B7F2BE289D2337002942E4 /* ZYClipImageTool.swift in Sources */, + 35B7F2BB289D2337002942E4 /* ZYQuadRangleClipView.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -318,6 +332,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Cliptest/Cliptest.entitlements; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = GJ4WQU9362; INFOPLIST_FILE = Cliptest/Info.plist; @@ -328,6 +343,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.xxxxfe.clip.Cliptest; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTS_MACCATALYST = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -338,6 +354,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Cliptest/Cliptest.entitlements; CODE_SIGN_STYLE = Automatic; DEVELOPMENT_TEAM = GJ4WQU9362; INFOPLIST_FILE = Cliptest/Info.plist; @@ -348,6 +365,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.xxxxfe.clip.Cliptest; PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTS_MACCATALYST = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; diff --git a/Cliptest.xcodeproj/project.xcworkspace/xcuserdata/wz.xcuserdatad/UserInterfaceState.xcuserstate b/Cliptest.xcodeproj/project.xcworkspace/xcuserdata/wz.xcuserdatad/UserInterfaceState.xcuserstate index 0002ce8..0071ed1 100644 Binary files a/Cliptest.xcodeproj/project.xcworkspace/xcuserdata/wz.xcuserdatad/UserInterfaceState.xcuserstate and b/Cliptest.xcodeproj/project.xcworkspace/xcuserdata/wz.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Cliptest.xcodeproj/xcuserdata/wz.xcuserdatad/xcschemes/xcschememanagement.plist b/Cliptest.xcodeproj/xcuserdata/wz.xcuserdatad/xcschemes/xcschememanagement.plist index 928c972..89f1c7d 100644 --- a/Cliptest.xcodeproj/xcuserdata/wz.xcuserdatad/xcschemes/xcschememanagement.plist +++ b/Cliptest.xcodeproj/xcuserdata/wz.xcuserdatad/xcschemes/xcschememanagement.plist @@ -9,6 +9,11 @@ orderHint 0 + ZYQuadrangleClipImageView.xcscheme_^#shared#^_ + + orderHint + 1 + diff --git a/Cliptest/Cliptest.entitlements b/Cliptest/Cliptest.entitlements new file mode 100644 index 0000000..ee95ab7 --- /dev/null +++ b/Cliptest/Cliptest.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.network.client + + + diff --git a/Cliptest/xxxas.jpg b/Cliptest/xxxas.jpg deleted file mode 100644 index 90e8aa3..0000000 Binary files a/Cliptest/xxxas.jpg and /dev/null differ diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..b7f28ec --- /dev/null +++ b/Package.swift @@ -0,0 +1,29 @@ +import PackageDescription + +let package = Package( + name: "ZYQuadrangleClipImageView", + platforms: [ + .iOS(.v13), + ], + products: [ + // Products define the executables and libraries produced by a package, and make them visible to other packages. + .library( + name: "ZYQuadrangleClipImageView", + targets: ["Cliptest"]), + ], + dependencies: [ + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages which this package depends on. + .target(name: "ZYQuadrangleClipImageView", + path: "Source", + sources: nil, + publicHeadersPath: nil, + cSettings: nil, + cxxSettings: nil, + swiftSettings: nil, + linkerSettings: nil + ) + ] +) diff --git a/Cliptest/ZYQuadRangleClip/ZYClipImageTool.swift b/Source/ZYClipImageTool.swift similarity index 100% rename from Cliptest/ZYQuadRangleClip/ZYClipImageTool.swift rename to Source/ZYClipImageTool.swift diff --git a/Cliptest/ZYQuadRangleClip/ZYClipMathTool.swift b/Source/ZYClipMathTool.swift similarity index 100% rename from Cliptest/ZYQuadRangleClip/ZYClipMathTool.swift rename to Source/ZYClipMathTool.swift diff --git a/Cliptest/ZYQuadRangleClip/ZYClipPointView.swift b/Source/ZYClipPointView.swift similarity index 94% rename from Cliptest/ZYQuadRangleClip/ZYClipPointView.swift rename to Source/ZYClipPointView.swift index 5e5ac18..726f775 100644 --- a/Cliptest/ZYQuadRangleClip/ZYClipPointView.swift +++ b/Source/ZYClipPointView.swift @@ -59,4 +59,8 @@ class ZYClipPointView: UIView { self.updateUI() } + +// override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { +// +// } } diff --git a/Cliptest/ZYQuadRangleClip/ZYMaginifierglass.swift b/Source/ZYMaginifierglass.swift similarity index 100% rename from Cliptest/ZYQuadRangleClip/ZYMaginifierglass.swift rename to Source/ZYMaginifierglass.swift diff --git a/Cliptest/ZYQuadRangleClip/ZYQuadRangleClipView.swift b/Source/ZYQuadRangleClipView.swift similarity index 78% rename from Cliptest/ZYQuadRangleClip/ZYQuadRangleClipView.swift rename to Source/ZYQuadRangleClipView.swift index b49976a..c80f63b 100644 --- a/Cliptest/ZYQuadRangleClip/ZYQuadRangleClipView.swift +++ b/Source/ZYQuadRangleClipView.swift @@ -6,7 +6,6 @@ // import UIKit - /// 剪切范围 区域 public typealias ZYQuadRangleCropPoints = (CGPoint, CGPoint, CGPoint, CGPoint) @@ -37,6 +36,8 @@ extension ZYQuadRangleClipView { open class ZYQuadRangleClipView: UIView { + + open var magView: UIView? open var lineStrokeColor: UIColor! = UIColor(red: 72/255.0, green: 34/255.0, blue: 236/255, alpha: 1) @@ -66,6 +67,9 @@ open class ZYQuadRangleClipView: UIView { /// 默认全选区域 public static let initFullPoints: ZYQuadRangleCropPoints = (CGPoint(x: 0, y: 0), CGPoint(x: 1, y: 0), CGPoint(x: 1, y: 1), CGPoint(x: 0, y: 1)) + + fileprivate var moffset: CGPoint = CGPoint(x: 0, y: -70) + /// 四个顶点位置 使用的左上角坐标系 比例值 fileprivate var leftTopPoint = CGPoint(x: 0, y: 0) fileprivate var rightTopPoint = CGPoint(x: 1, y: 0) @@ -119,7 +123,7 @@ open class ZYQuadRangleClipView: UIView { linePath.setLineDash([5, 5], count: 2, phase: 0) linePath.lineJoinStyle = .bevel - magnifierglass = ZYMaginifierglass(offset: CGPoint.zero, + magnifierglass = ZYMaginifierglass(offset: moffset, radius: 100.0, scale: 2.0, borderColor: UIColor.lightGray, @@ -129,13 +133,39 @@ open class ZYQuadRangleClipView: UIView { crosshairWidth: 0.5) } - public convenience init(lefttop: CGPoint, rightTop: CGPoint, rightBottom: CGPoint, leftBottom: CGPoint) { + public convenience init(lefttop: CGPoint, rightTop: CGPoint, rightBottom: CGPoint, leftBottom: CGPoint, mOffset: CGPoint = CGPoint(x: 0, y: -70)) { + self.init(frame: CGRect.zero) + moffset = mOffset + leftTopPoint = lefttop rightTopPoint = rightTop rightBottomPoint = rightBottom leftBottomPoint = leftBottom + + + magnifierglass = ZYMaginifierglass(offset: moffset, + radius: 100.0, + scale: 2.0, + borderColor: UIColor.lightGray, + borderWidth: 3.0, + showsCrosshair: true, + crosshairColor: UIColor.lightGray, + crosshairWidth: 0.5) + } + + public convenience init(mOffset: CGPoint = CGPoint(x: 0, y: -70)) { + self.init(frame: CGRect.zero) + moffset = mOffset + magnifierglass = ZYMaginifierglass(offset: moffset, + radius: 100.0, + scale: 2.0, + borderColor: UIColor.lightGray, + borderWidth: 3.0, + showsCrosshair: true, + crosshairColor: UIColor.lightGray, + crosshairWidth: 0.5) } func setupPoint(view: ZYClipPointView) { @@ -185,11 +215,19 @@ open class ZYQuadRangleClipView: UIView { self.linePath.addLine(to: self.rightbottom.center) self.linePath.addLine(to: self.leftbottom.center) self.linePath.close() - } } @objc func panGes(ges: UIPanGestureRecognizer) { + + if ges.state == .began { + ges.view?.isHidden = true + } + + if ges.state == .ended || ges.state == .cancelled || ges.state == .failed { + ges.view?.isHidden = false + } + var point = ges.location(in: self) var imagpoin = ges.location(in: self.magView) let convertRect = self.convert(self.bounds, to: self.magView) @@ -325,7 +363,8 @@ open class ZYQuadRangleClipView: UIView { return clip } } - +/// 扩展范围 +let extendSpace: CGFloat = 45.0 extension ZYQuadRangleClipView { /// 如果superview 是 imageview 直接剪切获取 image @@ -346,9 +385,9 @@ extension ZYQuadRangleClipView { return nil } - open override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { - let insetFrame = self.bounds.insetBy(dx: -45, dy: -45) + let insetFrame = self.bounds.insetBy(dx: -extendSpace, dy: -extendSpace) + print("ZYQuadRangleClipView point+ \(point)-frame = \(insetFrame)") return insetFrame.contains(point) } } @@ -356,10 +395,48 @@ extension ZYQuadRangleClipView { /// 实现了扩展触摸范围的imageview open class ZYQuadRangelClipImageView: UIImageView { - /// 扩展范围 - var extendSpace: CGFloat = 45.0 + + open override func addSubview(_ view: UIView) { + if view is ZYQuadRangleClipView { + tmpclipView = view as? ZYQuadRangleClipView + } + super.addSubview(view) + } + open override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { let insetFrame = self.bounds.insetBy(dx: -(extendSpace), dy: -extendSpace) - return insetFrame.contains(point) + let co = insetFrame.contains(point) + print("ZYQuadRangelClipImageView point+ \(point)-frame = \(insetFrame)-") + return co + } +} + +/// 当触摸点不在ZYQuadRangelClipExtensionImageView范围的时候,比如x <0的时候,ZYQuadRangelClipExtensionImageView.subviews = nil, 不知道为什么, 导致无法获取到subview 所有使用了全局变量 +/// +var tmpclipView: ZYQuadRangleClipView? +/// 扩大区域 +open class ZYQuadRangelClipExtensionImageView: UIImageView { + open override func addSubview(_ view: UIView) { + if view is ZYQuadRangleClipView { + tmpclipView = view as? ZYQuadRangleClipView + } + super.addSubview(view) + } + + open override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { + let insetFrame = self.bounds.insetBy(dx: -(extendSpace), dy: -extendSpace) + let co = insetFrame.contains(point) + print("ZYQuadRangelClipImageView point+ \(point)-frame = \(insetFrame)-") + return co + } + + open override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { + if self.point(inside: point, with: event) == true && tmpclipView != nil { + let convertedPoint = tmpclipView!.convert(point, from: self) + let hitview = tmpclipView?.hitTest(convertedPoint, with: event) + print(" point+ \(point)-subview=\(self.subviews)-hitview = \(String(describing: hitview))") + return hitview + } + return super.hitTest(point, with: event) } } diff --git a/ZYQuadrangleClipImageView.podspec b/ZYQuadrangleClipImageView.podspec index cbfa9ae..efdde88 100644 --- a/ZYQuadrangleClipImageView.podspec +++ b/ZYQuadrangleClipImageView.podspec @@ -16,7 +16,7 @@ Pod::Spec.new do |spec| # spec.name = "ZYQuadrangleClipImageView" - spec.version = "1.1.4" + spec.version = "1.1.8" spec.summary = "A short description of ZYQuadrangleClipImageView." # This description is used to generate tags and improve search results. @@ -53,10 +53,7 @@ Pod::Spec.new do |spec| # profile URL. # - # spec.author = { "zhangyun" => "zhangyun@top-stack.com" } - spec.author = "zhangyun" - # spec.authors = { "zhangyun" => "zhangyun@top-stack.com" } - # spec.social_media_url = "https://twitter.com/zhangyun" + spec.author = "xzzy" # ――― Platform Specifics ――――――――――――――――――――――――――――――――――――――――――――――――――――――― # # @@ -91,10 +88,10 @@ Pod::Spec.new do |spec| # Not including the public_header_files will make all headers public. # - spec.source_files = "Cliptest/ZYQuadRangleClip", "ZYQuadRangleClip/**/*.{h,m}" + spec.source_files = "Source", "Source/**/*.{h,m}" spec.exclude_files = "Cliptest/ZYQuadRangleClip/Exclude" - # spec.public_header_files = "Cliptest/ZYQuadRangleClip/**/*.h" + # spec.public_header_files = "Source/**/*.h" # ――― Resources ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #