Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ struct UIOnboardingHelper {
])
}

static func setUpTagline() -> String {
"Know Every Rank"
}

static func setUpFeatures() -> Array<UIOnboardingFeature> {
return .init([
.init(icon: .init(named: "feature-1")!,
Expand Down Expand Up @@ -60,6 +64,7 @@ extension UIOnboardingViewConfiguration {
return .init(appIcon: UIOnboardingHelper.setUpIcon(),
firstTitleLine: UIOnboardingHelper.setUpFirstTitleLine(),
secondTitleLine: UIOnboardingHelper.setUpSecondTitleLine(),
tagline: UIOnboardingHelper.setUpTagline(),
features: UIOnboardingHelper.setUpFeatures(),
textViewConfiguration: UIOnboardingHelper.setUpNotice(),
buttonConfiguration: UIOnboardingHelper.setUpButton())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,27 @@ struct UIOnboardingViewConfiguration {
var appIcon: UIImage
var firstTitleLine: NSMutableAttributedString
var secondTitleLine: NSMutableAttributedString
var tagline: String? = nil
var taglineColor: UIColor? = nil
var features: Array<UIOnboardingFeature>
let featureStyle: UIOnboardingFeatureStyle
var textViewConfiguration: UIOnboardingTextViewConfiguration? = nil
var buttonConfiguration: UIOnboardingButtonConfiguration

init(appIcon: UIImage,
firstTitleLine: NSMutableAttributedString,
secondTitleLine: NSMutableAttributedString,
tagline: String? = nil,
taglineColor: UIColor? = nil,
features: Array<UIOnboardingFeature>,
featureStyle: UIOnboardingFeatureStyle = .init(),
textViewConfiguration: UIOnboardingTextViewConfiguration? = nil,
buttonConfiguration: UIOnboardingButtonConfiguration) {
self.appIcon = appIcon
self.firstTitleLine = firstTitleLine
self.secondTitleLine = secondTitleLine
self.tagline = tagline
self.taglineColor = taglineColor
self.features = features
self.featureStyle = featureStyle
self.textViewConfiguration = textViewConfiguration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,31 @@ final class UIOnboardingStack: UIStackView {
setCustomSpacing(26, after: onboardingIcon)

addArrangedSubview(onboardingTitleLabelStack)
setCustomSpacing(traitCollection.horizontalSizeClass == .regular ? 40 : UIScreenType.setUpTitleSpacing(), after: onboardingTitleLabelStack)
onboardingTitleLabelStack.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
onboardingTitleLabelStack.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true


let titleSpacing: CGFloat = traitCollection.horizontalSizeClass == .regular ? 40 : UIScreenType.setUpTitleSpacing()
if let taglineText = configuration.tagline {
setCustomSpacing(14, after: onboardingTitleLabelStack)
let taglineLabel = UILabel()
taglineLabel.text = taglineText
var taglineFont = UIFont.systemFont(ofSize: 20, weight: .medium)
if let italicDescriptor = taglineFont.fontDescriptor.withSymbolicTraits(.traitItalic) {
taglineFont = UIFont(descriptor: italicDescriptor, size: 20)
}
taglineLabel.font = taglineFont
taglineLabel.textColor = configuration.taglineColor ?? .secondaryLabel
taglineLabel.numberOfLines = 0
taglineLabel.adjustsFontSizeToFitWidth = true
taglineLabel.minimumScaleFactor = 0.8
addArrangedSubview(taglineLabel)
taglineLabel.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
taglineLabel.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true
setCustomSpacing(titleSpacing, after: taglineLabel)
} else {
setCustomSpacing(titleSpacing, after: onboardingTitleLabelStack)
}

addArrangedSubview(featuresList)
featuresList.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
featuresList.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ struct UIOnboardingHelper {
])
}

static func setUpTagline() -> String {
"Know Every Rank"
}

static func setUpFeatures() -> Array<UIOnboardingFeature> {
.init([
.init(icon: .init(named: "feature-1"),
Expand Down Expand Up @@ -59,6 +63,7 @@ extension UIOnboardingViewConfiguration {
.init(appIcon: UIOnboardingHelper.setUpIcon(),
firstTitleLine: UIOnboardingHelper.setUpFirstTitleLine(),
secondTitleLine: UIOnboardingHelper.setUpSecondTitleLine(),
tagline: UIOnboardingHelper.setUpTagline(),
features: UIOnboardingHelper.setUpFeatures(),
textViewConfiguration: UIOnboardingHelper.setUpNotice(),
buttonConfiguration: UIOnboardingHelper.setUpButton())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ struct UIOnboardingHelper {
])
}

static func setUpTagline() -> String {
"Know Every Rank"
}

static func setUpFeatures() -> Array<UIOnboardingFeature> {
return .init([
.init(icon: .init(named: "feature-1")!,
Expand Down Expand Up @@ -60,6 +64,7 @@ extension UIOnboardingViewConfiguration {
return .init(appIcon: UIOnboardingHelper.setUpIcon(),
firstTitleLine: UIOnboardingHelper.setUpFirstTitleLine(),
secondTitleLine: UIOnboardingHelper.setUpSecondTitleLine(),
tagline: UIOnboardingHelper.setUpTagline(),
features: UIOnboardingHelper.setUpFeatures(),
textViewConfiguration: UIOnboardingHelper.setUpNotice(),
buttonConfiguration: UIOnboardingHelper.setUpButton())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,27 @@ public struct UIOnboardingViewConfiguration {
public var appIcon: UIImage
public var firstTitleLine: NSMutableAttributedString
public var secondTitleLine: NSMutableAttributedString
public var tagline: String? = nil
public var taglineColor: UIColor? = nil
public var features: Array<UIOnboardingFeature>
public let featureStyle: UIOnboardingFeatureStyle
public var textViewConfiguration: UIOnboardingTextViewConfiguration? = nil
public var buttonConfiguration: UIOnboardingButtonConfiguration

public init(appIcon: UIImage,
firstTitleLine: NSMutableAttributedString,
secondTitleLine: NSMutableAttributedString,
tagline: String? = nil,
taglineColor: UIColor? = nil,
features: Array<UIOnboardingFeature>,
featureStyle: UIOnboardingFeatureStyle = .init(),
textViewConfiguration: UIOnboardingTextViewConfiguration? = nil,
buttonConfiguration: UIOnboardingButtonConfiguration) {
self.appIcon = appIcon
self.firstTitleLine = firstTitleLine
self.secondTitleLine = secondTitleLine
self.tagline = tagline
self.taglineColor = taglineColor
self.features = features
self.featureStyle = featureStyle
self.textViewConfiguration = textViewConfiguration
Expand Down
25 changes: 23 additions & 2 deletions Sources/UIOnboarding/Views/UIOnboardingStack.swift
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,31 @@ final class UIOnboardingStack: UIStackView {
setCustomSpacing(26, after: onboardingIcon)

addArrangedSubview(onboardingTitleLabelStack)
setCustomSpacing(traitCollection.horizontalSizeClass == .regular ? 40 : UIScreenType.setUpTitleSpacing(), after: onboardingTitleLabelStack)
onboardingTitleLabelStack.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
onboardingTitleLabelStack.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true


let titleSpacing: CGFloat = traitCollection.horizontalSizeClass == .regular ? 40 : UIScreenType.setUpTitleSpacing()
if let taglineText = configuration.tagline {
setCustomSpacing(14, after: onboardingTitleLabelStack)
let taglineLabel = UILabel()
taglineLabel.text = taglineText
var taglineFont = UIFont.systemFont(ofSize: 20, weight: .medium)
if let italicDescriptor = taglineFont.fontDescriptor.withSymbolicTraits(.traitItalic) {
taglineFont = UIFont(descriptor: italicDescriptor, size: 20)
}
taglineLabel.font = taglineFont
taglineLabel.textColor = configuration.taglineColor ?? .secondaryLabel
taglineLabel.numberOfLines = 0
taglineLabel.adjustsFontSizeToFitWidth = true
taglineLabel.minimumScaleFactor = 0.8
addArrangedSubview(taglineLabel)
taglineLabel.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
taglineLabel.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true
setCustomSpacing(titleSpacing, after: taglineLabel)
} else {
setCustomSpacing(titleSpacing, after: onboardingTitleLabelStack)
}

addArrangedSubview(featuresList)
featuresList.leadingAnchor.constraint(equalTo: self.leadingAnchor).isActive = true
featuresList.trailingAnchor.constraint(equalTo: self.trailingAnchor).isActive = true
Expand Down