From 4799ddf939561127e2fa345071be68086f371c94 Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Mon, 16 Nov 2015 16:00:30 +0100 Subject: [PATCH 01/18] Adds a font list --- .../UserInterfaceState.xcuserstate | Bin 24150 -> 26355 bytes Source/Configuration/ColorList.swift | 12 ++++++++++++ Source/Configuration/FontList.swift | 5 +++++ 3 files changed, 17 insertions(+) create mode 100644 Source/Configuration/ColorList.swift create mode 100644 Source/Configuration/FontList.swift diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 5703b00e1152332b3ef92b9c9fa99167b5457808..b0603b9e9f6be8903677691ee5d93a2296de0b40 100644 GIT binary patch literal 26355 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
Y zU5Y-%kTN8tJjI+cETtl4e9DBBi7As)Zc3S+(vs4aGACtj%Dj{XDYvJrOt~xNo|H8y zYg4wSY){#dvNM%V4M+`5jYy47jZIBXO-W5p%}UKltxlbpdSB|U)IF*DQV*maOnoKw zSn8{(@1_2d`g`i1seh-TG$zd>%{$F6Eg(&r7Lpd87L_JX%S$UvGp3o+%xM*ABhp5v z)uxS0o0v8w&63ub)|_Tbo0&E{?dG(3X_wQz(|yzZ(*x6Ir{9{sBzHu}LI!Ucmr>fJ{nQFay zh&o?gs5Yug)m7@T>Z$5h^-OiQdainb`WE$a^&RRv)vML_s@JHWRKKtOLL^&A?N04u z+9$O8v4XX^(2((0-sjul+%LNqbobb+nGtNpwNFU|py#LKme=)Me_1>PmIx zy5YJi-6-7z-DKTVUA@k#Yu2^vx^;_nD|L73R_pH3-KX22+o;>3+os#0dsMeucTjgs z_m1wY?o-`ox(m85bQg6$>3-GyuKQDWS65&hHp7xc&VC-iUV-_*aOKdV2d zzo7p@|F!;G{VxV!@H7M)vJGm3&X8-!GZY$(29v>Ts4$E$j5gF7#u*%jnTBq|T*Csx zErweSw;7fj?l9bGxZ7}_VXa}EVY^|6;Zeh5hJP9UGW?wjbLrfY+)=sJxwX0Da@XW; z&fS{3J@=8^?{Y8Y{+0Xp5H!R%WaN<1Lu!VM9kO=F)*;)6>=?3h$i*R-hk~JKC^OVF zw0dam(6K`&41HkewxJIXePrmap%;f<&I5TUkI5^|8=Y5^Hzsd<-UE5t@*d86ByU&V z&-o~y$@j?j&iBig9nDliueFPKy?rNC0qSkPRswcxRW=L!xM94>gN;FW^o1#cF-Q}BMl zhXvmjd|&WG!OsQ173vF%3abi771k7vEu2s|snA+Dt#Eo_YvKGtT)41sapBU!YY78LPC%ZgSM zttz^!Xk*dlqHRSxigp%VEc&CEEA}e(EtV7q70ZgFi(`uuiW7@<#fIXc#RbL1#kUsU zQT#yhL&ZJCn~Jv@uKl3=lrsVsQizR=Q z{8b7{QE5=AtTePVqBOd6YN@SsW@&fn+|mW5x0Eg_T~WHKbam-HrCUn3mF_6rS^9YC zuO?vfHAzfCreIT;DZ->QX-vhYYSS3gc+(_PovGerHBB>3H_bIIF!82^rp2bErrS*` zO?R4Bn;tZ6GaWL$Yx=efm4%n7%F4@@maQtgudJtRXW7$bd&>5e9Vk0ecC_qx*@?1~ z%W?U_^2Oy#%a@lwRsN~j&m3Zo zHm8_%=6rLJxx`#%t}>4@*Oc{DJw5`KtpdzBwno~b-r`DNwhDp*BVaaCSbzEzT{psL`iu&T(a=&IDJ^s3CNoT`;oJylz( U9udPk2#J5W7u~`=plav;1E07ma{vGU diff --git a/Source/Configuration/ColorList.swift b/Source/Configuration/ColorList.swift new file mode 100644 index 0000000..16d042b --- /dev/null +++ b/Source/Configuration/ColorList.swift @@ -0,0 +1,12 @@ +import UIKit + +public struct ColorList { + + public struct Shout { + + public static var background = UIColor.whiteColor() + public static var dragIndicator = UIColor.lightGrayColor() + public static var title = UIColor.blackColor() + public static var subtitle = UIColor.blackColor() + } +} diff --git a/Source/Configuration/FontList.swift b/Source/Configuration/FontList.swift new file mode 100644 index 0000000..e6f817e --- /dev/null +++ b/Source/Configuration/FontList.swift @@ -0,0 +1,5 @@ +import UIKit + +public struct FontList { + +} From 935d4df5b0543e286f4cb0fabe9d455aa7d90f6b Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Mon, 16 Nov 2015 16:01:17 +0100 Subject: [PATCH 02/18] Adds some constants to the shout font list --- .../UserInterfaceState.xcuserstate | Bin 26355 -> 26349 bytes Source/Configuration/FontList.swift | 5 +++++ 2 files changed, 5 insertions(+) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index b0603b9e9f6be8903677691ee5d93a2296de0b40..6ca8214acf8f2b803fe4753dcb309efac86f50e5 100644 GIT binary patch delta 4515 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 delta 4496 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 z Date: Mon, 16 Nov 2015 16:23:15 +0100 Subject: [PATCH 03/18] Adds an action --- .../UserInterfaceState.xcuserstate | Bin 26349 -> 26373 bytes Source/Message.swift | 19 +++++++++++++++++- Source/ShoutFactory.swift | 5 +++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 Source/ShoutFactory.swift diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 6ca8214acf8f2b803fe4753dcb309efac86f50e5..e214cf43a2c1834e16d14b1d68b317a380d5936e 100644 GIT binary patch delta 13859 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 delta 14011 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 ())? + + public init(title: String, subtitle: String? = nil, image: UIImage? = nil, duration: NSTimeInterval, action: (() -> ())?) { + self.title = title + self.subtitle = subtitle + self.image = image + self.duration = duration + self.action = action + } +} diff --git a/Source/ShoutFactory.swift b/Source/ShoutFactory.swift new file mode 100644 index 0000000..5f01ff4 --- /dev/null +++ b/Source/ShoutFactory.swift @@ -0,0 +1,5 @@ +import UIKit + +public func Shout(message: Message, to: UIViewController) { + +} From 0715885aaedfc2bbdc81cfabea65596fa1ada1dc Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Mon, 16 Nov 2015 16:44:05 +0100 Subject: [PATCH 04/18] Adds a new class --- .../UserInterfaceState.xcuserstate | Bin 26373 -> 26433 bytes Source/Message.swift | 2 +- Source/ShoutFactory.swift | 71 +++++++++++++++++- 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index e214cf43a2c1834e16d14b1d68b317a380d5936e..fc253a65ef7782b1366a91677f8ec8dc611d8935 100644 GIT binary patch delta 13975 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 delta 13995 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 THRov ())? - public init(title: String, subtitle: String? = nil, image: UIImage? = nil, duration: NSTimeInterval, action: (() -> ())?) { + public init(title: String, subtitle: String? = nil, image: UIImage? = nil, duration: NSTimeInterval = 2, action: (() -> ())?) { self.title = title self.subtitle = subtitle self.image = image diff --git a/Source/ShoutFactory.swift b/Source/ShoutFactory.swift index 5f01ff4..f220aaf 100644 --- a/Source/ShoutFactory.swift +++ b/Source/ShoutFactory.swift @@ -1,5 +1,74 @@ import UIKit -public func Shout(message: Message, to: UIViewController) { +public func Shout(announcement: Announcement, to: UIViewController) { } + +public class ShoutView: UIView { + + public lazy var backgroundView: UIView = { + let view = UIView() + return view + }() + + public lazy var blurView: UIVisualEffectView = { + let blurView = UIVisualEffectView(effect: UIBlurEffect(style: .ExtraLight)) + return blurView + }() + + public lazy var indicatorView: UIView = { + let view = UIView() + return view + }() + + public lazy var gestureContainer: UIView = { + let view = UIView() + return view + }() + + public lazy var imageView: UIImageView = { + let imageView = UIImageView() + return imageView + }() + + public lazy var titleLabel: UILabel = { + let label = UILabel() + return label + }() + + public lazy var subtitleLabel: UILabel = { + let label = UILabel() + return label + }() + + public lazy var tapGestureRecognizer: UITapGestureRecognizer = { [unowned self] in + let gesture = UITapGestureRecognizer() + gesture.addTarget(self, action: "handleTapGestureRecognizer") + return gesture + }() + + public lazy var panGestureRecognizer: UIPanGestureRecognizer = { [unowned self] in + let gesture = UIPanGestureRecognizer() + gesture.addTarget(self, action: "handlePanGestureRecognizer") + + return gesture + }() + + public var announcement: Announcement + + // MARK: - Initializers + + public func init(announcement: Announcement) { + self.announcement = announcement + } + + // MARK: - Gesture methods + + public func handleTapGestureRecognizer() { + announcement.action?() + } + + public func handlePanGestureRecognizer() { + + } +} From 42b9c46de685da30733426bc9de40e8a0f4e5fa8 Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Mon, 16 Nov 2015 16:53:51 +0100 Subject: [PATCH 05/18] Adds some configuration --- .../UserInterfaceState.xcuserstate | Bin 26433 -> 26440 bytes Source/ShoutFactory.swift | 7 ++++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index fc253a65ef7782b1366a91677f8ec8dc611d8935..a8d3cb095763bd895e2536d2607fa24389ba9024 100644 GIT binary patch delta 4307 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 delta 4267 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 diff --git a/Source/ShoutFactory.swift b/Source/ShoutFactory.swift index f220aaf..963dae1 100644 --- a/Source/ShoutFactory.swift +++ b/Source/ShoutFactory.swift @@ -58,8 +58,13 @@ public class ShoutView: UIView { // MARK: - Initializers - public func init(announcement: Announcement) { + public init(announcement: Announcement) { self.announcement = announcement + super.init(frame: CGRectZero) + } + + public required init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") } // MARK: - Gesture methods From 7244aebe79978c6ea3f2c813e4999230a29bd59b Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 10:20:46 +0100 Subject: [PATCH 06/18] Adding some information --- .../UserInterfaceState.xcuserstate | Bin 26440 -> 27160 bytes .../WhisperDemo/ViewController.swift | 9 ++ Source/ShoutFactory.swift | 92 ++++++++++++++++-- 3 files changed, 93 insertions(+), 8 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index a8d3cb095763bd895e2536d2607fa24389ba9024..24dec189d2cafdbb53614c8a5ada62f073328695 100644 GIT binary patch literal 27160 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 z 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 literal 26440 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 Co=3C* diff --git a/Demo/WhisperDemo/WhisperDemo/ViewController.swift b/Demo/WhisperDemo/WhisperDemo/ViewController.swift index 7648d05..12c2236 100644 --- a/Demo/WhisperDemo/WhisperDemo/ViewController.swift +++ b/Demo/WhisperDemo/WhisperDemo/ViewController.swift @@ -97,6 +97,15 @@ class ViewController: UIViewController { override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) setupFrames() + + let announcement = Announcement(title: "First shout", action: { + print("Doing some action") + }) + + let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC))) + dispatch_after(delayTime, dispatch_get_main_queue()) { + Shout(announcement, to: self) + } } // MARK: Action methods diff --git a/Source/ShoutFactory.swift b/Source/ShoutFactory.swift index 963dae1..0e5591a 100644 --- a/Source/ShoutFactory.swift +++ b/Source/ShoutFactory.swift @@ -1,13 +1,25 @@ import UIKit +let shout = ShoutView() + public func Shout(announcement: Announcement, to: UIViewController) { - + shout.craft(announcement, to: to) } public class ShoutView: UIView { + public struct Dimensions { + public static let height: CGFloat = 72.5 + public static let width: CGFloat = UIScreen.mainScreen().bounds.width + public static let indicatorHeight: CGFloat = 6 + public static let indicatorWidth: CGFloat = 50 + } + public lazy var backgroundView: UIView = { let view = UIView() + view.backgroundColor = ColorList.Shout.background + view.alpha = 0.925 + return view }() @@ -16,13 +28,18 @@ public class ShoutView: UIView { return blurView }() - public lazy var indicatorView: UIView = { + public lazy var gestureContainer: UIView = { let view = UIView() + view.userInteractionEnabled = true + return view }() - public lazy var gestureContainer: UIView = { + public lazy var indicatorView: UIView = { let view = UIView() + view.backgroundColor = ColorList.Shout.dragIndicator + view.layer.cornerRadius = Dimensions.indicatorHeight / 2 + return view }() @@ -44,6 +61,7 @@ public class ShoutView: UIView { public lazy var tapGestureRecognizer: UITapGestureRecognizer = { [unowned self] in let gesture = UITapGestureRecognizer() gesture.addTarget(self, action: "handleTapGestureRecognizer") + return gesture }() @@ -54,26 +72,84 @@ public class ShoutView: UIView { return gesture }() - public var announcement: Announcement + public var announcement: Announcement? // MARK: - Initializers - public init(announcement: Announcement) { - self.announcement = announcement - super.init(frame: CGRectZero) + public override init(frame: CGRect) { + super.init(frame: frame) + + addSubview(backgroundView) + backgroundView.addSubview(blurView) + [gestureContainer, indicatorView, imageView, titleLabel, subtitleLabel].forEach { + blurView.addSubview($0) } + + clipsToBounds = true + userInteractionEnabled = true + + gestureContainer.addGestureRecognizer(panGestureRecognizer) + addGestureRecognizer(tapGestureRecognizer) } public required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + // MARK: - Configuration + + public func craft(announcement: Announcement, to: UIViewController) { + configureView(announcement) + shout(to: to) + } + + public func configureView(announcement: Announcement) { + self.announcement = announcement + setupFrames() + } + + public func shout(to controller: UIViewController) { + guard let controller = controller.navigationController else { fatalError("The controller must contain a navigation bar") } + + controller.view.addSubview(self) + + frame = CGRect(x: 0, y: 0, width: UIScreen.mainScreen().bounds.width, height: 0) + UIView.animateWithDuration(0.7, animations: { + self.frame.size.height = Dimensions.height + }) + } + + // MARK: - Setup + + public func setupFrames() { + backgroundView.frame = CGRect(x: 0, y: 0, width: Dimensions.width, height: Dimensions.height) + blurView.frame = backgroundView.bounds + gestureContainer.frame = CGRect(x: 0, y: Dimensions.height - 20, width: Dimensions.width, height: 20) + indicatorView.frame = CGRect(x: (Dimensions.width - Dimensions.indicatorWidth) / 2, + y: Dimensions.height - Dimensions.indicatorHeight - 5, width: Dimensions.indicatorWidth, height: Dimensions.indicatorHeight) + imageView.frame = CGRect(x: 0, y: 0, width: 0, height: 0) + titleLabel.frame = CGRect(x: 0, y: 0, width: 0, height: 0) + subtitleLabel.frame = CGRect(x: 0, y: 0, width: 0, height: 0) + } + + // MARK: - Actions + + public func silent() { + UIView.animateWithDuration(0.7, animations: { + self.frame.size.height = 0 + }, completion: { finished in + self.removeFromSuperview() + }) + } + // MARK: - Gesture methods public func handleTapGestureRecognizer() { + guard let announcement = announcement else { return } announcement.action?() + silent() } public func handlePanGestureRecognizer() { - + print("Pan") } } From 78b4bc8b8bd0ef105a4f51b22075b90fdf1f994f Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 10:48:52 +0100 Subject: [PATCH 07/18] Adds the view --- .../UserInterfaceState.xcuserstate | Bin 27160 -> 27585 bytes Source/ShoutFactory.swift | 36 +++++++++++++++--- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 24dec189d2cafdbb53614c8a5ada62f073328695..90431e9e0a9bae12f13865428528467e60925932 100644 GIT binary patch delta 9073 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 JE&toc{y#)=M6dt= delta 8749 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 F{{b6q;RXNz diff --git a/Source/ShoutFactory.swift b/Source/ShoutFactory.swift index 0e5591a..f2ff1d8 100644 --- a/Source/ShoutFactory.swift +++ b/Source/ShoutFactory.swift @@ -39,6 +39,7 @@ public class ShoutView: UIView { let view = UIView() view.backgroundColor = ColorList.Shout.dragIndicator view.layer.cornerRadius = Dimensions.indicatorHeight / 2 + view.userInteractionEnabled = true return view }() @@ -81,14 +82,14 @@ public class ShoutView: UIView { addSubview(backgroundView) backgroundView.addSubview(blurView) - [gestureContainer, indicatorView, imageView, titleLabel, subtitleLabel].forEach { + [indicatorView, gestureContainer, imageView, titleLabel, subtitleLabel].forEach { blurView.addSubview($0) } clipsToBounds = true userInteractionEnabled = true - gestureContainer.addGestureRecognizer(panGestureRecognizer) addGestureRecognizer(tapGestureRecognizer) + gestureContainer.addGestureRecognizer(panGestureRecognizer) } public required init?(coder aDecoder: NSCoder) { @@ -113,7 +114,7 @@ public class ShoutView: UIView { controller.view.addSubview(self) frame = CGRect(x: 0, y: 0, width: UIScreen.mainScreen().bounds.width, height: 0) - UIView.animateWithDuration(0.7, animations: { + UIView.animateWithDuration(0.35, animations: { self.frame.size.height = Dimensions.height }) } @@ -134,7 +135,7 @@ public class ShoutView: UIView { // MARK: - Actions public func silent() { - UIView.animateWithDuration(0.7, animations: { + UIView.animateWithDuration(0.35, animations: { self.frame.size.height = 0 }, completion: { finished in self.removeFromSuperview() @@ -146,10 +147,33 @@ public class ShoutView: UIView { public func handleTapGestureRecognizer() { guard let announcement = announcement else { return } announcement.action?() - silent() + //silent() } public func handlePanGestureRecognizer() { - print("Pan") + let translation = panGestureRecognizer.translationInView(self) + var duration: NSTimeInterval = 0 + + if panGestureRecognizer.state == .Changed || panGestureRecognizer.state == .Began { + if translation.y >= 12 { + frame.size.height = Dimensions.height + 12 + (translation.y) / 15 + } else { + frame.size.height = Dimensions.height + translation.y + } + } else { + let height = translation.y < -5 ? 0 : Dimensions.height + + duration = 0.2 + UIView.animateWithDuration(duration, animations: { + self.frame.size.height = height + }, completion: { _ in if translation.y < -5 { self.removeFromSuperview() }}) + } + + UIView.animateWithDuration(duration, animations: { + self.backgroundView.frame.size.height = self.frame.height + self.blurView.frame.size.height = self.frame.height + self.gestureContainer.frame.origin.y = self.frame.height - 20 + self.indicatorView.frame.origin.y = self.frame.height - Dimensions.indicatorHeight - 5 + }) } } From 07aa93c0edf5e6b9cfd4c1f1efba1fcaa0f247ec Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 11:02:16 +0100 Subject: [PATCH 08/18] Adding some more code --- .../UserInterfaceState.xcuserstate | Bin 27585 -> 27570 bytes Source/Configuration/FontList.swift | 4 ++-- Source/ShoutFactory.swift | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 90431e9e0a9bae12f13865428528467e60925932..884da4a9b42dd3fdd43fd921c218f42f2d58cde7 100644 GIT binary patch delta 14790 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

(myFb+9pA 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 R4no^c?wIXo(`SY2{{bfz8l3 Date: Tue, 17 Nov 2015 13:31:46 +0100 Subject: [PATCH 09/18] Adding an action to the table --- .../UserInterfaceState.xcuserstate | Bin 27570 -> 28127 bytes .../WhisperDemo/ViewController.swift | 34 ++++++---- Source/ShoutFactory.swift | 62 +++++++++++++++--- 3 files changed, 74 insertions(+), 22 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 884da4a9b42dd3fdd43fd921c218f42f2d58cde7..0c9b1bc888f9ee50a281d0114ac78b6be84d7faa 100644 GIT binary patch delta 14997 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 T+xu1!+P}FU?ca@`6)*n>^Vao9 diff --git a/Demo/WhisperDemo/WhisperDemo/ViewController.swift b/Demo/WhisperDemo/WhisperDemo/ViewController.swift index 12c2236..41983ef 100644 --- a/Demo/WhisperDemo/WhisperDemo/ViewController.swift +++ b/Demo/WhisperDemo/WhisperDemo/ViewController.swift @@ -47,6 +47,14 @@ class ViewController: UIViewController { return button }() + lazy var notificationButton: UIButton = { [unowned self] in + let button = UIButton() + button.addTarget(self, action: "presentNotificationDidPress:", forControlEvents: .TouchUpInside) + button.setTitle("Notification", forState: .Normal) + + return button + }() + lazy var newControllerButton: UIBarButtonItem = { [unowned self] in let button = UIBarButtonItem() button.title = "Next" @@ -72,9 +80,9 @@ class ViewController: UIViewController { navigationItem.backBarButtonItem = UIBarButtonItem(title: nil, style: .Plain, target: nil, action: nil) view.addSubview(scrollView) - for subview in [icon, titleLabel, presentButton, showButton, presentPermanentButton] { scrollView.addSubview(subview) } + for subview in [icon, titleLabel, presentButton, showButton, presentPermanentButton, notificationButton] { scrollView.addSubview(subview) } - for button in [presentButton, showButton, presentPermanentButton] { + for button in [presentButton, showButton, presentPermanentButton, notificationButton] { button.setTitleColor(UIColor.grayColor(), forState: .Normal) button.layer.borderColor = UIColor.grayColor().CGColor button.layer.borderWidth = 1.5 @@ -86,7 +94,7 @@ class ViewController: UIViewController { navigationController.navigationBar.addSubview(containerView) containerView.frame = CGRect(x: 0, y: navigationController.navigationBar.frame.maxY - UIApplication.sharedApplication().statusBarFrame.height, - width: UIScreen.mainScreen().bounds.width, height: 75) + width: UIScreen.mainScreen().bounds.width, height: 0) } override func viewWillAppear(animated: Bool) { @@ -97,15 +105,6 @@ class ViewController: UIViewController { override func viewDidAppear(animated: Bool) { super.viewDidAppear(animated) setupFrames() - - let announcement = Announcement(title: "First shout", action: { - print("Doing some action") - }) - - let delayTime = dispatch_time(DISPATCH_TIME_NOW, Int64(1 * Double(NSEC_PER_SEC))) - dispatch_after(delayTime, dispatch_get_main_queue()) { - Shout(announcement, to: self) - } } // MARK: Action methods @@ -132,6 +131,14 @@ class ViewController: UIViewController { Whisper(message, to: navigationController, action: .Present) } + func presentNotificationDidPress(button: UIButton) { + let announcement = Announcement(title: "First shout", action: { + print("Doing some action") + }) + + Shout(announcement, to: self) + } + func nextButtonDidPress() { let controller = DetailViewController() title = "" @@ -146,10 +153,11 @@ class ViewController: UIViewController { let originY = navigationHeight + UIApplication.sharedApplication().statusBarFrame.height scrollView.frame = CGRect(x: 0, y: originY, width: totalSize.width, height: totalSize.height - originY) - titleLabel.frame.origin = CGPoint(x: (totalSize.width - titleLabel.frame.width) / 2, y: totalSize.height / 2 - 200) + titleLabel.frame.origin = CGPoint(x: (totalSize.width - titleLabel.frame.width) / 2, y: totalSize.height / 2 - 250) presentButton.frame = CGRect(x: 50, y: titleLabel.frame.maxY + 75, width: totalSize.width - 100, height: 50) showButton.frame = CGRect(x: 50, y: presentButton.frame.maxY + 15, width: totalSize.width - 100, height: 50) presentPermanentButton.frame = CGRect(x: 50, y: showButton.frame.maxY + 15, width: totalSize.width - 100, height: 50) + notificationButton.frame = CGRect(x: 50, y: presentPermanentButton.frame.maxY + 15, width: totalSize.width - 100, height: 50) } } diff --git a/Source/ShoutFactory.swift b/Source/ShoutFactory.swift index 08201dc..b5b4866 100644 --- a/Source/ShoutFactory.swift +++ b/Source/ShoutFactory.swift @@ -9,10 +9,13 @@ public func Shout(announcement: Announcement, to: UIViewController) { public class ShoutView: UIView { public struct Dimensions { - public static let height: CGFloat = 75 + public static let height: CGFloat = 80 public static let width: CGFloat = UIScreen.mainScreen().bounds.width public static let indicatorHeight: CGFloat = 6 public static let indicatorWidth: CGFloat = 50 + public static let imageSize: CGFloat = 48 + public static let imageOffset: CGFloat = 18 + public static let textOffset: CGFloat = 75 } public lazy var backgroundView: UIView = { @@ -46,16 +49,29 @@ public class ShoutView: UIView { public lazy var imageView: UIImageView = { let imageView = UIImageView() + imageView.layer.cornerRadius = Dimensions.imageSize / 2 + imageView.clipsToBounds = true + imageView.contentMode = .ScaleAspectFill + imageView.backgroundColor = UIColor.blackColor() + return imageView }() public lazy var titleLabel: UILabel = { let label = UILabel() + label.font = FontList.Shout.title + label.tintColor = ColorList.Shout.title + label.numberOfLines = 1 + return label }() public lazy var subtitleLabel: UILabel = { let label = UILabel() + label.font = FontList.Shout.subtitle + label.tintColor = ColorList.Shout.subtitle + label.numberOfLines = 1 + return label }() @@ -74,6 +90,9 @@ public class ShoutView: UIView { }() public var announcement: Announcement? + public var displayTimer = NSTimer() + public var panGestureActive = false + public var shouldSilent = false // MARK: - Initializers @@ -99,14 +118,24 @@ public class ShoutView: UIView { // MARK: - Configuration public func craft(announcement: Announcement, to: UIViewController) { + panGestureActive = false + shouldSilent = false configureView(announcement) shout(to: to) - - } public func configureView(announcement: Announcement) { self.announcement = announcement + imageView.image = announcement.image + titleLabel.text = "Ramon Gilabert" + subtitleLabel.text = "Just commented a post in the Wall that you are following" + [titleLabel, subtitleLabel].forEach { + $0.sizeToFit() + } + + displayTimer.invalidate() + displayTimer = NSTimer.scheduledTimerWithTimeInterval(announcement.duration, + target: self, selector: "displayTimerDidFire", userInfo: nil, repeats: false) setupFrames() } @@ -129,9 +158,13 @@ public class ShoutView: UIView { gestureContainer.frame = CGRect(x: 0, y: Dimensions.height - 20, width: Dimensions.width, height: 20) indicatorView.frame = CGRect(x: (Dimensions.width - Dimensions.indicatorWidth) / 2, y: Dimensions.height - Dimensions.indicatorHeight - 5, width: Dimensions.indicatorWidth, height: Dimensions.indicatorHeight) - imageView.frame = CGRect(x: 0, y: 0, width: 0, height: 0) - titleLabel.frame = CGRect(x: 0, y: 0, width: 0, height: 0) - subtitleLabel.frame = CGRect(x: 0, y: 0, width: 0, height: 0) + imageView.frame = CGRect(x: Dimensions.imageOffset, y: (Dimensions.height - Dimensions.imageSize) / 2 + 5, + width: Dimensions.imageSize, height: Dimensions.imageSize) + titleLabel.frame.origin = CGPoint(x: Dimensions.textOffset, y: imageView.frame.origin.y + 3) + subtitleLabel.frame.origin = CGPoint(x: Dimensions.textOffset, y: CGRectGetMaxY(titleLabel.frame) + 2.5) + + [titleLabel, subtitleLabel].forEach { + $0.frame.size.width = Dimensions.width - Dimensions.imageSize - (Dimensions.imageOffset * 2) } } // MARK: - Actions @@ -144,12 +177,21 @@ public class ShoutView: UIView { }) } + // MARK: - Timer methods + + public func displayTimerDidFire() { + shouldSilent = true + + guard !panGestureActive else { return } + silent() + } + // MARK: - Gesture methods public func handleTapGestureRecognizer() { guard let announcement = announcement else { return } announcement.action?() - //silent() + silent() } public func handlePanGestureRecognizer() { @@ -157,13 +199,15 @@ public class ShoutView: UIView { var duration: NSTimeInterval = 0 if panGestureRecognizer.state == .Changed || panGestureRecognizer.state == .Began { + panGestureActive = true if translation.y >= 12 { - frame.size.height = Dimensions.height + 12 + (translation.y) / 15 + frame.size.height = Dimensions.height + 12 + (translation.y) / 25 } else { frame.size.height = Dimensions.height + translation.y } } else { - let height = translation.y < -5 ? 0 : Dimensions.height + panGestureActive = false + let height = translation.y < -5 || shouldSilent ? 0 : Dimensions.height duration = 0.2 UIView.animateWithDuration(duration, animations: { From 49156b35d710a4510f6eab640bb1652f38addb68 Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 14:00:09 +0100 Subject: [PATCH 10/18] Adds some shadow --- .../UserInterfaceState.xcuserstate | Bin 28127 -> 28214 bytes Source/ShoutFactory.swift | 12 ++++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 0c9b1bc888f9ee50a281d0114ac78b6be84d7faa..58bd49ba4dc485bc8fdbc4b53dc70dbcbb9ffe3c 100644 GIT binary patch delta 15134 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 BiP8W7 delta 14799 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


T%Sw=$L3-bV_t;bb9on=*H+Z(d(i&#)xCQVq`JC zF#$0nj4_j9ro>E(nHg&z>k;c2>mBPGH!02(w;*m&+>-cP@qffWiGLRVGC`G)o{*W4 zosgHXD4{W7O~Sf_jR}tv-X*+G_>c$_D-wGo)+Y8&?3Z{X@%zLxi9aS@P=%=CRa%u^ zWl*K5(p3ejVpXZCT-8Cpw-BUeO{h@lTdaL?d^-mH=qLaLmQj?03MkP&1nwhjDsUc}~(%Pi;NgI=P zCGAbxmvkWMaMIDF(@E!(t|vW6dY<$$>2=bdNq;5N$y~BkvQ4smvMAXt**7^nIU!k< ztWMS$lMTr^$@$4e$tB5U$rZ^%l9wfKNIsW*E%|ox)8x0w?~>mqe^3Lpwc1WCQah@p zY8SOk9j1;~8`L@KJavJ(NL`}tq^?$XQ+HR_s(Y*J)JQ#5y->YEU9WCXuU4;BZ&UA7 z?@@oD-mgBW{#t!reM9|F{X+dp{YL#(ZG5L;G`z-IW2%)Ow~-+%-1Z^EYU2}tkBeJHfVNg4roqk&S@@c zu4t}lZffpn9%}y3JkdPYywo~qOmD=^%O-Aij?RM=h z?H=u6?MdxL?M>}1?XTM3w0E^nw9mD#v~RS3Y5&%-ItQJbPOb~rMe3q;vATGjR+pkn z)1~XObUC{Ay3V@Zy5Tyko1mMlo2HwoTd4a?w@kNOSFdZ(9n#&=z0iB;{q)0i~$+O8zvd*4ULAih7E?zhHZwOhCPNa4F?Q|4PO~f7)}~a z8!j8J8m<{`rh27@riP`4r$(g?N;Rh9)bXj4Qol|;pL#L%a_UcMZPJ3%Les+1BGLw? zjZH&opr*=2e zz0(!x%Jhiz==8zqD1BV|g!IYjr_wK_UrGNd{YHjgMnpz*MqEZ>MpA}4qavegM)!=` zjNTceGZthl%2<-|dB)0&TNw{Bo@a_PT{Gh|b22M3J7#vy>}t&Hp4l^VU}jzBu*?ye z(=umd&d!{dxghgm=FQCCGaqL@%Y2#nCi86;%wn^IEbAAY1XE!Em_;Mc4h6&dYcWi9kLy>rP;389@(DR^6cPjMYb|q zlda1(WVg%C%$}ZYoS$8v-I%>Ldqei-?5){fWbe;Dlzk-o$L#ajm$I*BU(fN*3CfAh zNyt&G^vxNNvoq&F&Z(U5a?a$O%ek0yIplxo>mdKQjT(GrZd%>=Py#@OU4i+3PI9l*+!KH#Hgv*%{>6ie zhZK)4HWrU7o>)A&cuw)W;>E?Qi#HW-E#6VQyZAuy;o`4~PZWPse75*}@z2GNieD7J zE`D45cL`m>l~|S7me`lLlz5c{mKeiJ=a()jU0J%Nba&~2(o?0EO0Sk)Fa5dn*U~$s z_e)=u{#p80>H9LO43;rvTv=#Ye%Z*f#zk%Twl4da&zUj4$d8d XI)rtIw$$w)w7d%^Ebq;)9b*3 Date: Tue, 17 Nov 2015 14:16:27 +0100 Subject: [PATCH 11/18] Adding some more code --- .../UserInterfaceState.xcuserstate | Bin 28214 -> 28331 bytes .../WhisperDemo/ViewController.swift | 8 +++++--- Source/Configuration/ColorList.swift | 2 +- Source/ShoutFactory.swift | 1 + 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 58bd49ba4dc485bc8fdbc4b53dc70dbcbb9ffe3c..008dfc13baa3601642dac3da27505d2950dbbad2 100644 GIT binary patch delta 11166 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 a<7=n*kHApW{};UU|79^JFmHcq>Hi0)^WD|} delta 11150 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 qnr<~cYBtvFsM%Swt7cEFxK>jeTbt;;7ei6+Z}7 Date: Tue, 17 Nov 2015 14:28:38 +0100 Subject: [PATCH 12/18] Adds some custom thingys --- .../UserInterfaceState.xcuserstate | Bin 28331 -> 29069 bytes .../WhisperDemo/Assets.xcassets/Contents.json | 6 +++++ .../avatar.imageset/Contents.json | 21 ++++++++++++++++++ .../avatar.imageset/avatar.png | Bin 0 -> 76919 bytes .../WhisperDemo/ViewController.swift | 4 +--- Source/Message.swift | 2 +- Source/ShoutFactory.swift | 18 +++++++++++---- 7 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 Demo/WhisperDemo/WhisperDemo/Assets.xcassets/Contents.json create mode 100644 Demo/WhisperDemo/WhisperDemo/Assets.xcassets/avatar.imageset/Contents.json create mode 100644 Demo/WhisperDemo/WhisperDemo/Assets.xcassets/avatar.imageset/avatar.png diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 008dfc13baa3601642dac3da27505d2950dbbad2..2a832d27b06a3032cc4cf4c999a44eef414d3571 100644 GIT binary patch delta 15540 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 delta 14815 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 ())? - public init(title: String, subtitle: String? = nil, image: UIImage? = nil, duration: NSTimeInterval = 2, action: (() -> ())?) { + public init(title: String, subtitle: String? = nil, image: UIImage? = nil, duration: NSTimeInterval = 2, action: (() -> ())? = nil) { self.title = title self.subtitle = subtitle self.image = image diff --git a/Source/ShoutFactory.swift b/Source/ShoutFactory.swift index b5d0417..68c9bf8 100644 --- a/Source/ShoutFactory.swift +++ b/Source/ShoutFactory.swift @@ -15,7 +15,7 @@ public class ShoutView: UIView { public static let indicatorWidth: CGFloat = 50 public static let imageSize: CGFloat = 48 public static let imageOffset: CGFloat = 18 - public static let textOffset: CGFloat = 75 + public static var textOffset: CGFloat = 75 } public lazy var backgroundView: UIView = { @@ -53,7 +53,6 @@ public class ShoutView: UIView { imageView.layer.cornerRadius = Dimensions.imageSize / 2 imageView.clipsToBounds = true imageView.contentMode = .ScaleAspectFill - imageView.backgroundColor = UIColor.blackColor() return imageView }() @@ -132,12 +131,19 @@ public class ShoutView: UIView { public func configureView(announcement: Announcement) { self.announcement = announcement imageView.image = announcement.image - titleLabel.text = "Ramon Gilabert" - subtitleLabel.text = "Just commented a post in the Wall that you are following" + titleLabel.text = announcement.title + if let text = announcement.subtitle { + subtitleLabel.text = text + } else { + subtitleLabel.text = "" + } + [titleLabel, subtitleLabel].forEach { $0.sizeToFit() } + if imageView.image == nil { Dimensions.textOffset = 18 } + displayTimer.invalidate() displayTimer = NSTimer.scheduledTimerWithTimeInterval(announcement.duration, target: self, selector: "displayTimerDidFire", userInfo: nil, repeats: false) @@ -170,6 +176,10 @@ public class ShoutView: UIView { titleLabel.frame.origin = CGPoint(x: Dimensions.textOffset, y: imageView.frame.origin.y + 3) subtitleLabel.frame.origin = CGPoint(x: Dimensions.textOffset, y: CGRectGetMaxY(titleLabel.frame) + 2.5) + if let text = subtitleLabel.text where text.isEmpty { + titleLabel.center.y = imageView.center.y - 2.5 + } + [titleLabel, subtitleLabel].forEach { $0.frame.size.width = Dimensions.width - Dimensions.imageSize - (Dimensions.imageOffset * 2) } } From 4287f0d3177647b2b1a7d9bb8e6e3b8319715678 Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 14:32:33 +0100 Subject: [PATCH 13/18] Deletes some structure --- .../WhisperDemo.xcodeproj/project.pbxproj | 4 --- .../UserInterfaceState.xcuserstate | Bin 29069 -> 28843 bytes .../WhisperDemo/DetailViewController.swift | 31 ------------------ .../WhisperDemo/ViewController.swift | 18 ---------- 4 files changed, 53 deletions(-) delete mode 100644 Demo/WhisperDemo/WhisperDemo/DetailViewController.swift diff --git a/Demo/WhisperDemo/WhisperDemo.xcodeproj/project.pbxproj b/Demo/WhisperDemo/WhisperDemo.xcodeproj/project.pbxproj index 6eceaa5..4546c54 100644 --- a/Demo/WhisperDemo/WhisperDemo.xcodeproj/project.pbxproj +++ b/Demo/WhisperDemo/WhisperDemo.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 2977865E1BC30BEF0050D397 /* DetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2977865D1BC30BEF0050D397 /* DetailViewController.swift */; settings = {ASSET_TAGS = (); }; }; 29AD429E1BBC2BD2004292F1 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29AD429D1BBC2BD2004292F1 /* AppDelegate.swift */; }; 29AD42A01BBC2BD2004292F1 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29AD429F1BBC2BD2004292F1 /* ViewController.swift */; }; 29AD42A51BBC2BD2004292F1 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 29AD42A41BBC2BD2004292F1 /* Assets.xcassets */; }; @@ -16,7 +15,6 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 2977865D1BC30BEF0050D397 /* DetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DetailViewController.swift; sourceTree = ""; }; 29AD429A1BBC2BD2004292F1 /* WhisperDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WhisperDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 29AD429D1BBC2BD2004292F1 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 29AD429F1BBC2BD2004292F1 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; @@ -71,7 +69,6 @@ children = ( 29AD429D1BBC2BD2004292F1 /* AppDelegate.swift */, 29AD429F1BBC2BD2004292F1 /* ViewController.swift */, - 2977865D1BC30BEF0050D397 /* DetailViewController.swift */, 29AD42A41BBC2BD2004292F1 /* Assets.xcassets */, 29AD42A61BBC2BD2004292F1 /* LaunchScreen.storyboard */, 29AD42A91BBC2BD2004292F1 /* Info.plist */, @@ -208,7 +205,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 2977865E1BC30BEF0050D397 /* DetailViewController.swift in Sources */, 29AD42A01BBC2BD2004292F1 /* ViewController.swift in Sources */, 29AD429E1BBC2BD2004292F1 /* AppDelegate.swift in Sources */, ); diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 2a832d27b06a3032cc4cf4c999a44eef414d3571..a76e6069f25ac60412226fc89d0a724b1ad307fb 100644 GIT binary patch delta 11177 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%0DX~ zRz9wLTKS?Xv&vajTIH%LuUb&GwrYLV#;PsVtZG5Ef3?hW&WEC&CtJ-teLUYkepZM4 EAI4HrMF0Q* diff --git a/Demo/WhisperDemo/WhisperDemo/DetailViewController.swift b/Demo/WhisperDemo/WhisperDemo/DetailViewController.swift deleted file mode 100644 index 665a7fc..0000000 --- a/Demo/WhisperDemo/WhisperDemo/DetailViewController.swift +++ /dev/null @@ -1,31 +0,0 @@ -import UIKit - -class DetailViewController: UIViewController { - - lazy var containerView: UIView = { - let view = UIView() - view.backgroundColor = UIColor.grayColor() - - return view - }() - - override func viewDidLoad() { - super.viewDidLoad() - - view.backgroundColor = UIColor(red:0.86, green:0.86, blue:0.86, alpha:1) - title = "Whisper detail".uppercaseString - - guard let navigationController = navigationController else { return } - - navigationController.navigationBar.addSubview(containerView) - containerView.frame = CGRect(x: 0, - y: navigationController.navigationBar.frame.maxY - UIApplication.sharedApplication().statusBarFrame.height, - width: UIScreen.mainScreen().bounds.width, height: 100) - } - - override func viewWillDisappear(animated: Bool) { - super.viewWillDisappear(animated) - - containerView.removeFromSuperview() - } -} diff --git a/Demo/WhisperDemo/WhisperDemo/ViewController.swift b/Demo/WhisperDemo/WhisperDemo/ViewController.swift index ec9a32b..2da4cf3 100644 --- a/Demo/WhisperDemo/WhisperDemo/ViewController.swift +++ b/Demo/WhisperDemo/WhisperDemo/ViewController.swift @@ -55,15 +55,6 @@ class ViewController: UIViewController { return button }() - lazy var newControllerButton: UIBarButtonItem = { [unowned self] in - let button = UIBarButtonItem() - button.title = "Next" - button.target = self - button.action = "nextButtonDidPress" - - return button - }() - lazy var containerView: UIView = { let view = UIView() view.backgroundColor = UIColor.grayColor() @@ -76,9 +67,6 @@ class ViewController: UIViewController { view.backgroundColor = UIColor.whiteColor() - navigationItem.rightBarButtonItem = newControllerButton - navigationItem.backBarButtonItem = UIBarButtonItem(title: nil, style: .Plain, target: nil, action: nil) - view.addSubview(scrollView) for subview in [icon, titleLabel, presentButton, showButton, presentPermanentButton, notificationButton] { scrollView.addSubview(subview) } @@ -141,12 +129,6 @@ class ViewController: UIViewController { Shout(announcement, to: self) } - func nextButtonDidPress() { - let controller = DetailViewController() - title = "" - navigationController?.pushViewController(controller, animated: true) - } - // MARK - Configuration func setupFrames() { From 2f85cbfaf06d5d5bcdba443f28913ceaec3945d8 Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 14:52:15 +0100 Subject: [PATCH 14/18] Adds some security --- .../UserInterfaceState.xcuserstate | Bin 28843 -> 29150 bytes Source/WhisperFactory.swift | 12 ++++++------ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index a76e6069f25ac60412226fc89d0a724b1ad307fb..e9c4d99b4efe15cd58d544b4eb11cbc1faca8df6 100644 GIT binary patch delta 15693 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 delta 15500 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 Q2#xP1Hpchn*AA8c4-Jp;QUCw| diff --git a/Source/WhisperFactory.swift b/Source/WhisperFactory.swift index 8c96c50..b024c17 100644 --- a/Source/WhisperFactory.swift +++ b/Source/WhisperFactory.swift @@ -196,12 +196,12 @@ class WhisperFactory: NSObject { } func performControllerMove(viewController: UIViewController) { - if viewController is UITableViewController { - let tableView = viewController.view as! UITableView - tableView.contentInset = UIEdgeInsetsMake(tableView.contentInset.top + edgeInsetHeight, 0, 0, 0) - } else if viewController is UICollectionViewController { - let collectionView = viewController.view as! UICollectionView - collectionView.contentInset = UIEdgeInsetsMake(collectionView.contentInset.top + edgeInsetHeight, 0, 0, 0) + if let tableView = viewController.view as? UITableView + where viewController is UITableViewController { + tableView.contentInset = UIEdgeInsetsMake(tableView.contentInset.top + edgeInsetHeight, 0, 0, 0) + } else if let collectionView = viewController.view as? UICollectionView + where viewController is UICollectionViewController { + collectionView.contentInset = UIEdgeInsetsMake(collectionView.contentInset.top + edgeInsetHeight, 0, 0, 0) } else { for view in viewController.view.subviews { if let scrollView = view as? UIScrollView { From 84b4ff268783257f62b2e7f667ab30332fafc24f Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 14:54:50 +0100 Subject: [PATCH 15/18] Adds some more code --- .../UserInterfaceState.xcuserstate | Bin 29150 -> 28941 bytes .../WhisperDemo/ViewController.swift | 4 ---- 2 files changed, 4 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index e9c4d99b4efe15cd58d544b4eb11cbc1faca8df6..8f4531cec50bfe606e1d4c04441a5aafdd0be566 100644 GIT binary patch delta 15391 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 diff --git a/Demo/WhisperDemo/WhisperDemo/ViewController.swift b/Demo/WhisperDemo/WhisperDemo/ViewController.swift index 2da4cf3..c2880ef 100644 --- a/Demo/WhisperDemo/WhisperDemo/ViewController.swift +++ b/Demo/WhisperDemo/WhisperDemo/ViewController.swift @@ -95,10 +95,6 @@ class ViewController: UIViewController { setupFrames() } - override func viewDidLayoutSubviews() { - scrollView.contentSize = view.frame.size - } - // MARK: Action methods func presentButtonDidPress(button: UIButton) { From 81b7d9934df02a1f4f01c19676a08a5f8cca1257 Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 15:33:45 +0100 Subject: [PATCH 16/18] Conventions --- .../UserInterfaceState.xcuserstate | Bin 28941 -> 30340 bytes Demo/WhisperDemo/WhisperDemo/Info.plist | 2 -- README.md | 3 +-- Source/Message.swift | 4 ++-- 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 8f4531cec50bfe606e1d4c04441a5aafdd0be566..9b72869e39421e685d08c28aa23b37073fc7365a 100644 GIT binary patch delta 16640 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 xt@Lc^tbTxmNQBV%EpRb@H-C2A@P8XQ;j;h$ diff --git a/Demo/WhisperDemo/WhisperDemo/Info.plist b/Demo/WhisperDemo/WhisperDemo/Info.plist index eabb3ae..d338c77 100644 --- a/Demo/WhisperDemo/WhisperDemo/Info.plist +++ b/Demo/WhisperDemo/WhisperDemo/Info.plist @@ -31,8 +31,6 @@ UISupportedInterfaceOrientations UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight UISupportedInterfaceOrientations~ipad diff --git a/README.md b/README.md index c690ca2..0c209cc 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,5 @@ # Whisper :dash: -[![CI Status](http://img.shields.io/travis/hyperoslo/Whisper.svg?style=flat)](https://travis-ci.org/hyperoslo/Whisper) [![Version](https://img.shields.io/cocoapods/v/Whisper.svg?style=flat)](http://cocoadocs.org/docsets/Whisper) [![License](https://img.shields.io/cocoapods/l/Whisper.svg?style=flat)](http://cocoadocs.org/docsets/Whisper) [![Platform](https://img.shields.io/cocoapods/p/Whisper.svg?style=flat)](http://cocoadocs.org/docsets/Whisper) @@ -26,4 +25,4 @@ Hyper Interaktiv AS, ios@hyper.no ## License -**Whisper** is available under the MIT license. See the LICENSE file for more info. +**Whisper** is available under the MIT license. See the LICENSE file for more information. diff --git a/Source/Message.swift b/Source/Message.swift index 7feb42b..a6cbd36 100644 --- a/Source/Message.swift +++ b/Source/Message.swift @@ -19,9 +19,9 @@ public struct Announcement { public var subtitle: String? public var image: UIImage? public var duration: NSTimeInterval - public var action: (() -> ())? + public var action: (() -> Void)? - public init(title: String, subtitle: String? = nil, image: UIImage? = nil, duration: NSTimeInterval = 2, action: (() -> ())? = nil) { + public init(title: String, subtitle: String? = nil, image: UIImage? = nil, duration: NSTimeInterval = 2, action: (() -> Void)? = nil) { self.title = title self.subtitle = subtitle self.image = image From 67ce327bdfb232d136dda3c9c7ae2242abbab639 Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 15:34:35 +0100 Subject: [PATCH 17/18] Use size instead --- .../UserInterfaceState.xcuserstate | Bin 30340 -> 30345 bytes Source/ShoutFactory.swift | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index 9b72869e39421e685d08c28aa23b37073fc7365a..b4fadd113b74c30180c632ebde27814dfc2df27a 100644 GIT binary patch delta 3201 zcmY++XL!?wqJZHrlTe^(Q$~O?V_P1QWl4$cggCY&OY)W_Tb67Q4>lpJgaTbAtP@%& zg%Bu|O&EnTN+1+26u59$C4^O=tO6|!VKrs1zbPZ?SdmdtFEF z%_x#T$uSvnbiEBGbIxaJ(kGZ1Mk~L2?|eq-;Ii>!sB!U5b} zp;sV^9EC|iD;x^9!l&RAL4~M@CgetOHH}zXF$mtH5=28}<9@57eF2S!#>grS_Ev)_S$9me)?yPS^fRJ5xJL`-Ao; z?SAe5YX7ahqkX1*p?#%&qwA-Gb%+kr8FjL5xUN`Nq8p>DO6peWs[-|0^3F6*x9 ze$(9qQ^60w&R|!tJ7@(xpcnLkey|9Pf-x`wjt0koW5H5zGFT2y0jGg;!FgaMSOu;E zSA*5yTCfJ(4(k*{^ffdW zng`8?Rzj(EW;mOfw4=>7VDKBN!p2k3|B zhwDe`N9)Jw%k;~W`jh%*SP7$WE^LDHVGC@99k3Vn!vR=;2g1YP5%5TOEL;XpfG5FA z;k9rL{3E;@-UAW=J! zkaNfdDqchLvv-{@oX8Tt}!#!|3WSX(RyGhz9d1+yhF5~DFE=D}Eu#{^8m zWGsp$u))|ctQZ@Gjm65a3D_iT23CQ6fz8J5V9&4@*emQ!PEk&APD#$_oN+mia#M0! z=C;mF&6RS8W zVtj5&T1_64&*V1+ObbobrnRQ^rj4eT=2UaK`5kjdbD6o^Jk>niTw%UqZZzLD-#0hq zjm`T!Z*tz0yy^Lk`A_qo=fBKvE+7in0H( z9L2M#wi64pG#2(@&;s|k^s3Yo$GsHRK zD$$rE9ujZKG_oDpp6p0wkXd98vKQHh%qEqjp6pLjBu~m@5g8*B&Wxu@8mu50og=8Bp;K__7r<7dmDS2 zy`4SN-ovi2Bldi|#cs1FNjq(4?Yv#Ei}r|pfPJEUxqXxU7yC7PgZ;6+nM$ErQEjPo z>V2vc)s^Z-eMt490LnmFD4KFmF3LmsD3OX#MO2I$NDZb&Q4^^t)Ew#?YB9BhT1Ks) zzN5aUwopG%+o@V=A9aj6N8OJjxcNxh|8(rxHex*gq~R?%Ksrl--f=>_y^ z`g?i{y^Y>M|41L8579^HWAq97Bz=LtPT!`V&~KO)Olu~UX~$$TotZ4AJJXZt&8Qia z>CZSAjtMd%6Jd&&q09)Tgc;3@W6GG%m@k-0W&yK^S;8!5)-xNKyFxf+_Z)vY+c`TpGn|>u&dw}n4`(lDU#G$eIJHj5X>g)Ws}pyUPTKh| z=X~b^=Ql~`x6aGX+s-@Ad(OXHdRKp!#btF7uIa9MuKBJ7u0^g(t_D}5>#pm8+u*ji zt!~_HcUQQp+zZ`{+)Lb7-FMvg+z;G;dk{~d$L1kCl&8W|ly{bQk#~uAxp$R!jdz_ldC+^pTkk#NJ?FjUed9~?`-J@YVVb`VRY!`A+!ieW!hwd{=$feK&oNd{2DOeXo3PSPM(D0XD>j*#T^fO|Zr6 zD0VDc%1&cvurt|N>>Re9y~y5TZ?kvV2khVMBlb1>*5A_K+TY3FCF$?x|IpvtpYRv^ zC;C6}f9@~$PxH_4&+*UmSNRwE*ZVj4H~F{vYy6M>&0IUK1DC;Na-F%ZTpuo*Q*ml8 zkL%ABayVz_D!94aGHxYT&8_1$aNlz~xF5Oy;r4PTxl`O(?mYJ^--B212%p27_8Kx zv|v`Sd$4D)PcS<;C|DBwIQUs`axyqII3rjQoEw}UTo_yw+z|XexFxtPxFh&XND(>+ z8A7JeS;!K)3)zB7&Aw<;ec>ZI2`I5(uXV| zTZjzNA!o=FVnci=5gHsC7Ag*n3XKhwg(ie1g(^eKL)${h{h_m=TcJmx*Wx>32Qfp; z5@FFSvZ5r)VpNQaQE8=hBP4Sl4AU26lq!g)x z)KPj@dQa*p^^vkAm86k$Ql3OfyfjD}Dvgjzq%l&d^pP}4`c#@NeJ#zC=1U8c(qd_; zv_e`XRZE+tUD6q;QF;^33~R$=m<`Vg&kHXKuMTew?+ot_?+xz{9|<21*M(1o&qUfp zdPmF=JmQJ45k4YBq=+0TiWEo2MaD-aMm~v5iA;}FM81s7j?_l}kTc{gxwov7&9YS{ zWJ-3(tjx=ToRs8*!@^j>{0A# z>_zN#>}|YdyiGhU{!Y9@yj#3Syl1>md{BIByfi*OJ~4hVek=C~i delta 3193 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 diff --git a/Source/ShoutFactory.swift b/Source/ShoutFactory.swift index 68c9bf8..931272b 100644 --- a/Source/ShoutFactory.swift +++ b/Source/ShoutFactory.swift @@ -166,7 +166,7 @@ public class ShoutView: UIView { // MARK: - Setup public func setupFrames() { - backgroundView.frame = CGRect(x: 0, y: 0, width: Dimensions.width, height: Dimensions.height) + backgroundView.frame.size = CGSize(width: Dimensions.width, height: Dimensions.height) blurView.frame = backgroundView.bounds gestureContainer.frame = CGRect(x: 0, y: Dimensions.height - 20, width: Dimensions.width, height: 20) indicatorView.frame = CGRect(x: (Dimensions.width - Dimensions.indicatorWidth) / 2, From aa60fa3be821e132ed6af6c8bdf9cd06124f0003 Mon Sep 17 00:00:00 2001 From: Ramon Gilabert Date: Tue, 17 Nov 2015 15:35:58 +0100 Subject: [PATCH 18/18] Deletes guard --- .../UserInterfaceState.xcuserstate | Bin 30345 -> 30377 bytes Source/ShoutFactory.swift | 8 ++------ 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate b/Demo/WhisperDemo/WhisperDemo.xcworkspace/xcuserdata/RamonGilabert.xcuserdatad/UserInterfaceState.xcuserstate index b4fadd113b74c30180c632ebde27814dfc2df27a..8d6b5c386e25c708d7b86651d419b32c32b506dc 100644 GIT binary patch delta 5226 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 G<$nNh@&CU7 delta 5169 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