diff --git a/Stepic/Images.xcassets/stories-close-button-icon.imageset/Contents.json b/Stepic/Images.xcassets/stories-close-button-icon.imageset/Contents.json new file mode 100644 index 0000000000..56e40b012e --- /dev/null +++ b/Stepic/Images.xcassets/stories-close-button-icon.imageset/Contents.json @@ -0,0 +1,16 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "stories-close-button-icon.pdf" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + }, + "properties" : { + "template-rendering-intent" : "template", + "preserves-vector-representation" : true + } +} \ No newline at end of file diff --git a/Stepic/Images.xcassets/stories-close-button-icon.imageset/stories-close-button-icon.pdf b/Stepic/Images.xcassets/stories-close-button-icon.imageset/stories-close-button-icon.pdf new file mode 100644 index 0000000000..4ffa5091d5 Binary files /dev/null and b/Stepic/Images.xcassets/stories-close-button-icon.imageset/stories-close-button-icon.pdf differ diff --git a/Stepic/SegmentedProgressView.swift b/Stepic/SegmentedProgressView.swift index 617f00d489..4dba590f31 100644 --- a/Stepic/SegmentedProgressView.swift +++ b/Stepic/SegmentedProgressView.swift @@ -13,7 +13,7 @@ import SnapKit extension SegmentedProgressView { struct Appearance { var spacing: CGFloat = 5 - var barColor = UIColor.white.withAlphaComponent(0.3) + var barColor = UIColor.white.withAlphaComponent(0.5) var progressColor = UIColor.white.withAlphaComponent(1) } } diff --git a/Stepic/StoryViewController.swift b/Stepic/StoryViewController.swift index 460ed0f544..449c46dac1 100644 --- a/Stepic/StoryViewController.swift +++ b/Stepic/StoryViewController.swift @@ -11,11 +11,18 @@ import SnapKit class StoryViewController: UIViewController { + @IBOutlet weak var closeButtonTapProxyView: TapProxyView! + @IBOutlet weak var closeButton: UIButton! @IBOutlet weak var progressView: SegmentedProgressView! @IBOutlet weak var partsContainerView: UIView! - @IBOutlet weak var closeView: UIView! - private var gradientLayer: CAGradientLayer? + private lazy var topGradientLayer: CAGradientLayer = { + let layer = CAGradientLayer( + colors: [UIColor.black.withAlphaComponent(0.5), UIColor.clear], + rotationAngle: 0 + ) + return layer + }() var presenter: StoryPresenterProtocol? @@ -23,6 +30,10 @@ class StoryViewController: UIViewController { private var didLayout: Bool = false private var onAppearBlock: (() -> Void)? + @IBAction func onCloseButtonClick(_ sender: Any) { + presenter?.onClosePressed() + } + override func viewDidLoad() { super.viewDidLoad() @@ -42,6 +53,9 @@ class StoryViewController: UIViewController { view.layer.masksToBounds = true } + closeButtonTapProxyView.targetView = closeButton + + self.view.layer.insertSublayer(self.topGradientLayer, below: self.progressView.layer) presenter?.animate() } @@ -58,6 +72,14 @@ class StoryViewController: UIViewController { override func viewDidLayoutSubviews() { super.viewDidLayoutSubviews() + + self.topGradientLayer.frame = CGRect( + x: 0, + y: 0, + width: self.view.frame.width, + height: 2 * self.closeButton.frame.maxY + ) + didLayout = true if didAppear && didLayout { @@ -87,9 +109,8 @@ class StoryViewController: UIViewController { @objc func didTap(recognizer: UITapGestureRecognizer) { - let closeLocation = recognizer.location(in: closeView) - if closeView.bounds.contains(closeLocation) { - presenter?.onClosePressed() + let closeLocation = recognizer.location(in: closeButtonTapProxyView) + if closeButtonTapProxyView.bounds.contains(closeLocation) { return } diff --git a/Stepic/StoryViewController.xib b/Stepic/StoryViewController.xib index 65940424a3..99262ded14 100644 --- a/Stepic/StoryViewController.xib +++ b/Stepic/StoryViewController.xib @@ -12,7 +12,8 @@ - + + @@ -28,45 +29,59 @@ - + - + - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - + + + + + + + + + + + @@ -74,10 +89,10 @@ - + - +