Skip to content

Commit 07feb7e

Browse files
igorkulmanDaltron
authored andcommitted
Fix for status bar banner on non-notch iPhones on iOS 13 (#241)
* Update README.md * Adds FloatingNotificationBanner.swift to XcodeProject (Carthage) * Fixes #240 status bar banner on non-notch iPhones on iOS 13
1 parent 010a357 commit 07feb7e

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

NotificationBanner.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
0D0D9ADF1F15D19D003B35A8 /* BannerPositionFrame.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D0D9ADE1F15D19D003B35A8 /* BannerPositionFrame.swift */; };
1111
2B9A8469216538CA00A7418D /* GrowingNotificationBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B9A8468216538CA00A7418D /* GrowingNotificationBanner.swift */; };
1212
2B9A846B216544E600A7418D /* String+heightForConstrainedWidth.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B9A846A216544E600A7418D /* String+heightForConstrainedWidth.swift */; };
13+
7ECA5719232FA42B00256BB9 /* FloatingNotificationBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7ECA5718232FA42B00256BB9 /* FloatingNotificationBanner.swift */; };
1314
823255AF1EB87313006F95C3 /* BannerColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8232559F1EB87313006F95C3 /* BannerColors.swift */; };
1415
823255B01EB87313006F95C3 /* BannerStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823255A01EB87313006F95C3 /* BannerStyle.swift */; };
1516
823255B11EB87313006F95C3 /* BaseNotificationBanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823255A11EB87313006F95C3 /* BaseNotificationBanner.swift */; };
@@ -28,6 +29,7 @@
2829
0D0D9ADE1F15D19D003B35A8 /* BannerPositionFrame.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BannerPositionFrame.swift; sourceTree = "<group>"; };
2930
2B9A8468216538CA00A7418D /* GrowingNotificationBanner.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GrowingNotificationBanner.swift; sourceTree = "<group>"; };
3031
2B9A846A216544E600A7418D /* String+heightForConstrainedWidth.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+heightForConstrainedWidth.swift"; sourceTree = "<group>"; };
32+
7ECA5718232FA42B00256BB9 /* FloatingNotificationBanner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FloatingNotificationBanner.swift; sourceTree = "<group>"; };
3133
8232558B1EB872AB006F95C3 /* NotificationBanner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = NotificationBanner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
3234
8232559E1EB87313006F95C3 /* .gitkeep */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .gitkeep; sourceTree = "<group>"; };
3335
8232559F1EB87313006F95C3 /* BannerColors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BannerColors.swift; sourceTree = "<group>"; };
@@ -102,6 +104,7 @@
102104
823255A41EB87313006F95C3 /* StatusBarNotificationBanner.swift */,
103105
F7E13CF51FB192ED0008EE4C /* NotificationBannerUtilities.swift */,
104106
2B9A8468216538CA00A7418D /* GrowingNotificationBanner.swift */,
107+
7ECA5718232FA42B00256BB9 /* FloatingNotificationBanner.swift */,
105108
2B9A846A216544E600A7418D /* String+heightForConstrainedWidth.swift */,
106109
);
107110
path = Classes;
@@ -219,6 +222,7 @@
219222
823255B21EB87313006F95C3 /* NotificationBanner.swift in Sources */,
220223
2B9A846B216544E600A7418D /* String+heightForConstrainedWidth.swift in Sources */,
221224
0D0D9ADF1F15D19D003B35A8 /* BannerPositionFrame.swift in Sources */,
225+
7ECA5719232FA42B00256BB9 /* FloatingNotificationBanner.swift in Sources */,
222226
823255AF1EB87313006F95C3 /* BannerColors.swift in Sources */,
223227
2B9A8469216538CA00A7418D /* GrowingNotificationBanner.swift in Sources */,
224228
F7E13CF61FB192ED0008EE4C /* NotificationBannerUtilities.swift in Sources */,

NotificationBanner/Classes/StatusBarNotificationBanner.swift

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,23 @@ open class StatusBarNotificationBanner: BaseNotificationBanner {
3030
} else if shouldAdjustForNotchFeaturedIphone() {
3131
return 50.0
3232
} else {
33-
return 20.0
33+
return 20.0 + heightAdjustment
3434
}
3535
} set {
3636
customBannerHeight = newValue
3737
}
3838
}
3939

40+
private var heightAdjustment: CGFloat {
41+
// iOS 13 does not allow covering the status bar on non-notch iPhones
42+
// The banner needs to be moved further down under the status bar in this case
43+
guard #available(iOS 13.0, *), !NotificationBannerUtilities.isNotchFeaturedIPhone() else {
44+
return 0
45+
}
46+
47+
return UIApplication.shared.statusBarFrame.height
48+
}
49+
4050
override init(style: BannerStyle, colors: BannerColorsProtocol? = nil) {
4151
super.init(style: style, colors: colors)
4252

@@ -49,7 +59,7 @@ open class StatusBarNotificationBanner: BaseNotificationBanner {
4959
contentView.addSubview(titleLabel!)
5060

5161
titleLabel!.snp.makeConstraints { (make) in
52-
make.top.equalToSuperview()
62+
make.top.equalToSuperview().offset(heightAdjustment)
5363
make.left.equalToSuperview().offset(5)
5464
make.right.equalToSuperview().offset(-5)
5565
make.bottom.equalToSuperview()

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ pod 'NotificationBannerSwift'
5151

5252
Then add `import NotificationBannerSwift` at the top of each file you use NotificationBanner in your project.
5353

54+
#### iOS13
55+
56+
```ruby
57+
pod 'NotificationBannerSwift', :git => 'https://github.com/Daltron/NotificationBanner', :branch => 'ios13'
58+
```
59+
5460
#### Swift 4.2
5561

5662
```ruby

0 commit comments

Comments
 (0)