Autumn Sale50% offCOMPOT
ButtonsFree ComponentiOS 16.0+Xcode 15+

Button with Repeat Behavior

Stepper-like button with continuous press-and-hold repeating action for counters and volume adjustment.

SwiftUI Implementation

Pure Vanilla Swift • No Dependencies
ButtonWithRepeatBehavior.swift
import SwiftUI

struct ButtonWithRepeatBehavior: View {
    @State private var toggleButton = false
    @State private var count = 0

    var body: some View {
        VStack {
            Text("\(count)")
            .font(.title)
            HStack(spacing: 24) {
                VStack {
                    Button { count  = count - 1 }
                    label: {
                        Image(systemName: "minus")
                        .frame(width: 48, height: 48)
                        .background(.background.secondary)
                        .clipShape(Circle())
                    }
                    .symbolEffect(.bounce, value: toggleButton)
                    .buttonRepeatBehavior(.enabled)
                    Text("Hold to continuously \\ndecrease the number")
                    .font(.footnote)
                    .foregroundStyle(.secondary)
                    .multilineTextAlignment(.center)
                    .frame(maxWidth: 180, alignment: .center)
                }
                VStack {
                    Button { count  = count + 1 }
                    label: {
                        Image(systemName: "plus")
                        .frame(width: 48, height: 48)
                        .background(.background.secondary)
                        .clipShape(Circle())
                    }
                    .symbolEffect(.bounce, value: toggleButton)
                    .buttonRepeatBehavior(.enabled)
                    Text("Hold to continuously \\nincrease the number")
                    .font(.footnote)
                    .foregroundStyle(.secondary)
                    .multilineTextAlignment(.center)
                    .frame(maxWidth: 180, alignment: .center)
                }
            }
        }
    }
}

#Preview {
    ButtonWithRepeatBehavior()
}

Ready to copy and paste directly into any Xcode project running iOS 16.0+.

Recommended Use Cases

  • First-run onboarding flows and feature introductions
  • Dashboard overviews, stats tracking, and metric highlights

Component Details

Category
Buttons
iOS Compatibility
iOS 16.0+
Xcode Version
Xcode 15+
Platform
iOS
License Tier
Free
Themes & Contexts
onboardingdashboardaccount
Keywords
buttonsymbolicon
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 Store