Subscription Plan Choice with Checkmark
Selectable pricing tier card (Monthly vs. Annual) with radio checkmark and "Save 50%" tag.
SwiftUI Implementation
Pure Vanilla Swift • No DependenciessubscriptionPlanChoiceCheckmarkSimple.swift
import SwiftUI
struct SubscriptionPlanBanner: View {
@State private var isSelected: Bool = false
let planTitle: String = "Compot Pro Annual Subscription"
let planPrice: String = "$9.99/year, then $29.99/year"
let planDescription: String = "Unlock all content and unlimited features."
var body: some View {
VStack(alignment: .leading, spacing: 4) {
HStack {
Text(planTitle)
Spacer()
Image(systemName: isSelected ? "checkmark.circle.fill" : "circle")
.foregroundStyle(isSelected ? Color.accentColor : Color.gray)
.symbolRenderingMode(.multicolor)
}
.font(.system(size: 17, weight: .bold))
Text(planPrice)
.font(.system(size: 13, weight: .regular))
Divider()
.padding(.vertical, 4)
Text(planDescription)
.font(.system(size: 13, weight: .regular))
}
.padding()
.frame(maxWidth: .infinity, alignment: .leading)
.background {
RoundedRectangle(cornerRadius: 15.0, style: .continuous)
.fill(.ultraThinMaterial)
.stroke(isSelected ? Color.accentColor : Color.gray, lineWidth: 2.0)
}
.onTapGesture {
isSelected.toggle()
}
}
}
#Preview {
SubscriptionPlanBanner()
}Ready to copy and paste directly into any Xcode project running iOS 16.0+.
Recommended Use Cases
- First-run onboarding flows and feature introductions
- Paywalls, upgrade prompts, and subscription tiers
- App settings, preferences, and account configuration screens
Component Details
- Category
- Paywalls & Subscriptions
- iOS Compatibility
- iOS 16.0+
- Xcode Version
- Xcode 15+
- Platform
- iOS
- License Tier
- Pro
- Themes & Contexts
- settingsonboardingpaywall
C
Compot for iOS
Native SwiftUI playground app
Preview all 130+ components interactively on your device and copy code straight to Xcode with 1 tap.
Get Compot on the App StoreRelated SwiftUI Components
More components in Paywalls & Subscriptions and related app architectures.
ButtonsiOS 16.0+
Primary Button Basic
High-emphasis prominent action button with standard SwiftUI prominence styling and haptic feedback.
View Component & Code
ButtonsiOS 16.0+
CTA Button Large Basic
Full-width, high-impact call-to-action button designed for onboarding screens, welcome flows, and paywalls.
View Component & Code
ButtonsiOS 16.0+
Secondary Button Basic
Medium-emphasis secondary action button styled for alternative user workflows and dismissal actions.
View Component & Code