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 @@
-
+
-
+