SubscriptionPrompt alternatives and similar libraries
Based on the "Popup" category.
Alternatively, view SubscriptionPrompt alternatives based on common mentions on social networks and blogs.
-
SwiftEntryKit
SwiftEntryKit is a presentation library for iOS. It can be used to easily display overlays within your iOS apps. -
PopupDialog
A simple, customizable popup dialog for iOS written in Swift. Replaces UIAlertController alert style. -
LNPopupController
A framework for presenting view controllers as popups of other view controllers, much like the Apple Music and Podcasts apps. -
STPopup
STPopup provides STPopupController, which works just like UINavigationController in popup style, for both iPhone and iPad. It's written in Objective-C and compatible with Swift. -
CNPPopupController
DISCONTINUED. Simple and versatile class for presenting a custom popup in a variety of fashions. It includes a many options for controlling how your popup appears and behaves. -
MijickPopupView
Popups, popovers, sheets, alerts, toasts, banners, (...) presentation made simple. Written with and for SwiftUI. -
AZDialogViewController
A highly customizable alert dialog controller that mimics Snapchat's alert dialog. -
PBPopupController
A framework for presenting bars and view controllers as popup, much like the look and feel of Apple Music App.
InfluxDB high-performance time series database

* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of SubscriptionPrompt or a related project?
README
SubscriptionPrompt
SubscriptionPrompt is a UIViewController with a carousel at the top and a number of rows at the bottom. Written in Swift, works for Objective-C as well.
Installation
CocoaPods
You can use CocoaPods to install SubscriptionPrompt
by adding it to your Podfile
:
platform :ios, '8.0'
use_frameworks!
pod 'SubscriptionPrompt'
Manually
Download and drop /SubscriptionPrompt
folder in your project.
Usage
Just initialize the SubscriptionViewontroller with the following constructor, you can omit some parameters since they have default values:
init(title: String? = nil, slides: [Slide], options: [Option],
cancelMessage: String? = nil, restoreButtonTitle: String? = nil)
and present it.
Slide
and Option
are structs, use the following inits to create them:
init(image: UIImage?, title: String?, subtitle: String?)
init(title: String?, checked: Bool = false)
To get the index of tapped rows, implement the SubscriptionViewControllerDelegate.
override func viewDidLoad() {
super.viewDidLoad()
subscriptionViewController.delegate = self
}
func subscriptionViewControllerRowTapped(atIndex index: Int) {
print("tapped index: \(index)")
}
animateDraggingToTheRight(duration:)
- animates a little drag to the right and back with the given duration
[ux hint for the user that the carousel is draggable]
Styles customization
Set stylingDelegate: SubscriptionViewControllerStylingDelegate
to customize styles.
There are three optional methods:
optional func subscriptionViewControllerSlideStyle(atIndex index: Int) -> SlideStyle
optional func subscriptionViewControllerOptionStyle(atIndex index: Int) -> OptionStyle
optional func subscriptionViewControllerNotNowButtonStyle() -> OptionStyle
The methods return OptionStyle
and SlideStyle
. They represent the looks of the subscription options at the bottom and of the slides at the top.
Use the following init for OptionStyle
:
init(backgroundColor: UIColor? = nil, textFont: UIFont? = nil,
textColor: UIColor? = nil, accessoryType: UITableViewCellAccessoryType? = nil)
and for SlideStyle
:
init(backgroundColor: UIColor? = nil, titleFont: UIFont? = nil,
subtitleFont: UIFont? = nil, titleColor: UIColor? = nil,
subtitleColor: UIColor? = nil)
The title is customizable via the titleFont
and titleColor
properties.
You can also change the background dim color using the dimColor: UIColor
and dimView: UIView
properties.
TODO
- Bug fixes.
- Add closure-based delegation API. Example:
subscriptionVC.rowTapped { idx in
print("tapped index: \(idx)")
}