From fc70d6832f83fedf76ef46d225c0021f082e6a6b Mon Sep 17 00:00:00 2001 From: Aleksey Belousov Date: Fri, 10 Apr 2020 05:49:22 +0300 Subject: [PATCH] [iOS] fix small tap area in Elevation Profile https://jira.mail.ru/browse/MAPSME-13529 --- iphone/Chart/Chart.xcodeproj/project.pbxproj | 4 ++++ .../Chart/Views/ChartInfo/ChartInfoView.swift | 6 +----- iphone/Chart/Chart/Views/ChartPreviewView.swift | 9 ++------- iphone/Chart/Chart/Views/ChartView.swift | 7 ++++++- iphone/Chart/Chart/Views/ExpandedTouchView.swift | 8 ++++++++ iphone/Maps/UI/PlacePage/PlacePage.storyboard | 14 +++++++------- 6 files changed, 28 insertions(+), 20 deletions(-) create mode 100644 iphone/Chart/Chart/Views/ExpandedTouchView.swift diff --git a/iphone/Chart/Chart.xcodeproj/project.pbxproj b/iphone/Chart/Chart.xcodeproj/project.pbxproj index 4a2a6252ae..aac61ec93d 100644 --- a/iphone/Chart/Chart.xcodeproj/project.pbxproj +++ b/iphone/Chart/Chart.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 472644DE24400C0400B9C053 /* ExpandedTouchView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 472644DD24400C0300B9C053 /* ExpandedTouchView.swift */; }; 47375E3C2420E94E00FFCC49 /* ChartPresentationData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47375E392420E94C00FFCC49 /* ChartPresentationData.swift */; }; 47375E3E2420E94E00FFCC49 /* ChartData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47375E3B2420E94E00FFCC49 /* ChartData.swift */; }; 47375E4B2420E97100FFCC49 /* ChartXAxisView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 47375E3F2420E96C00FFCC49 /* ChartXAxisView.swift */; }; @@ -22,6 +23,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 472644DD24400C0300B9C053 /* ExpandedTouchView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpandedTouchView.swift; sourceTree = ""; }; 47375D962420D4DB00FFCC49 /* Chart.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Chart.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 47375D9A2420D4DB00FFCC49 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 47375E392420E94C00FFCC49 /* ChartPresentationData.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChartPresentationData.swift; sourceTree = ""; }; @@ -122,6 +124,7 @@ 47375E492420E97100FFCC49 /* ChartPreviewView.swift */, 47375E3F2420E96C00FFCC49 /* ChartXAxisView.swift */, 47375E472420E96F00FFCC49 /* ChartYAxisView.swift */, + 472644DD24400C0300B9C053 /* ExpandedTouchView.swift */, ); path = Views; sourceTree = ""; @@ -254,6 +257,7 @@ 47375E542420E97100FFCC49 /* ChartPreviewView.swift in Sources */, 47375E3C2420E94E00FFCC49 /* ChartPresentationData.swift in Sources */, 47375E4D2420E97100FFCC49 /* ChartView.swift in Sources */, + 472644DE24400C0400B9C053 /* ExpandedTouchView.swift in Sources */, 47375E4F2420E97100FFCC49 /* ChartPointInfoView.swift in Sources */, 47375E4E2420E97100FFCC49 /* ChartInfoView.swift in Sources */, ); diff --git a/iphone/Chart/Chart/Views/ChartInfo/ChartInfoView.swift b/iphone/Chart/Chart/Views/ChartInfo/ChartInfoView.swift index 79f3eb711d..530e340c27 100644 --- a/iphone/Chart/Chart/Views/ChartInfo/ChartInfoView.swift +++ b/iphone/Chart/Chart/Views/ChartInfo/ChartInfoView.swift @@ -13,7 +13,7 @@ protocol ChartInfoViewDelegate: AnyObject { func chartInfoView(_ view: ChartInfoView, didMoveToPoint pointX: CGFloat) } -class ChartInfoView: UIView { +class ChartInfoView: ExpandedTouchView { weak var delegate: ChartInfoViewDelegate? private let pointInfoView = ChartPointInfoView() @@ -104,10 +104,6 @@ class ChartInfoView: UIView { fatalError() } - override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { - bounds.insetBy(dx: -22, dy: 0).contains(point) - } - func update(_ x: CGFloat? = nil) { guard bounds.width > 0 else { return } let x = x ?? pointsView.center.x diff --git a/iphone/Chart/Chart/Views/ChartPreviewView.swift b/iphone/Chart/Chart/Views/ChartPreviewView.swift index c27b73f1ec..889b605d56 100644 --- a/iphone/Chart/Chart/Views/ChartPreviewView.swift +++ b/iphone/Chart/Chart/Views/ChartPreviewView.swift @@ -28,7 +28,7 @@ class TintView: UIView { } } -class ViewPortView: UIView { +class ViewPortView: ExpandedTouchView { let maskLayer = CAShapeLayer() var tintView: TintView? @@ -58,14 +58,9 @@ class ViewPortView: UIView { result.usesEvenOddFillRule = true return result } - - override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { - let rect = bounds.insetBy(dx: -30, dy: 0) - return rect.contains(point) - } } -class ChartPreviewView: UIView { +class ChartPreviewView: ExpandedTouchView { let previewContainerView = UIView() let viewPortView = ViewPortView() let leftBoundView = UIView() diff --git a/iphone/Chart/Chart/Views/ChartView.swift b/iphone/Chart/Chart/Views/ChartView.swift index 4df627372a..8802b42681 100644 --- a/iphone/Chart/Chart/Views/ChartView.swift +++ b/iphone/Chart/Chart/Views/ChartView.swift @@ -7,7 +7,7 @@ enum ChartAnimation: TimeInterval { } public class ChartView: UIView { - let chartsContainerView = UIView() + let chartsContainerView = ExpandedTouchView() let chartPreviewView = ChartPreviewView() let yAxisView = ChartYAxisView() let xAxisView = ChartXAxisView() @@ -201,6 +201,11 @@ public class ChartView: UIView { chartsContainerView.frame = chartsFrame } + override public func point(inside point: CGPoint, with event: UIEvent?) -> Bool { + let rect = bounds.insetBy(dx: -30, dy: 0) + return rect.contains(point) + } + @objc func onPinch(_ sender: UIPinchGestureRecognizer) { if sender.state == .began { pinchStartLower = xAxisView.lowerBound diff --git a/iphone/Chart/Chart/Views/ExpandedTouchView.swift b/iphone/Chart/Chart/Views/ExpandedTouchView.swift new file mode 100644 index 0000000000..ad6a3a6a71 --- /dev/null +++ b/iphone/Chart/Chart/Views/ExpandedTouchView.swift @@ -0,0 +1,8 @@ +import UIKit + +class ExpandedTouchView: UIView { + override func point(inside point: CGPoint, with event: UIEvent?) -> Bool { + let rect = bounds.insetBy(dx: -30, dy: 0) + return rect.contains(point) + } +} diff --git a/iphone/Maps/UI/PlacePage/PlacePage.storyboard b/iphone/Maps/UI/PlacePage/PlacePage.storyboard index 153186a64a..6bf6cb9622 100644 --- a/iphone/Maps/UI/PlacePage/PlacePage.storyboard +++ b/iphone/Maps/UI/PlacePage/PlacePage.storyboard @@ -2902,19 +2902,19 @@ - + - + - + - + - + @@ -3059,7 +3059,7 @@ - + @@ -3068,7 +3068,7 @@ - +