SwiftUI List swipeActions stutter with variable row heights on ProMotion

I have isolated a reproducible animation issue involving SwiftUI List, system .swipeActions, variable row heights, and ProMotion.

Environment:

  • iPhone 17 Pro Max
  • iOS 26.6
  • Xcode 26.5
  • Low Power Mode off
  • “Limit Frame Rate” off
  • iOS screen recording off

When a List contains alternating single-line and two-line rows whose heights are determined naturally, slowly dragging a row left to reveal .swipeActions causes a visible pause.

The row briefly stops following the finger, then jumps left. The trailing action buttons appear suddenly instead of being progressively revealed. Fast swipes are usually smooth.

I created a minimal project with two modes:

  • Variable: alternating single-line and two-line rows use their natural heights.
  • Uniform: the same contents are constrained to a uniform height.

Both modes use the same List, SF Symbol, tap gesture, and .swipeActions. The issue reproduces consistently in Variable mode, while Uniform mode remains smooth.

A simplified version of the Row is:

ForEach(0..<20, id: \.self) { index in
    HStack {
        Image(systemName: "folder")
            .frame(width: 28)

        VStack(alignment: .leading) {
            Text("Category \(index + 1)")

            if index.isMultiple(of: 2) {
                Text("Secondary information")
                    .font(.caption)
                    .foregroundStyle(.secondary)
            }
        }

        Spacer()
    }
    .swipeActions(edge: .trailing, allowsFullSwipe: false) {
        Button("Delete", systemImage: "trash") {}
            .tint(.red)

        Button("Hide", systemImage: "eye.slash") {}
            .tint(.orange)
    }
}

The unusual part is that the issue immediately disappears when any of the following is enabled:

  • Low Power Mode
  • Accessibility → Motion → Limit Frame Rate
  • iOS screen recording

It returns as soon as those conditions are disabled.

I can also observe highly similar behavior in:

Settings → General → iPhone Storage

Rows with a “Last Used” subtitle appear taller than rows without it. Slowly swiping those rows can produce the same pause followed by the action UI suddenly appearing. The same frame-rate-related workarounds make that system list smooth as well.

I have filed this through Feedback Assistant: FB24515209.

Has anyone reproduced this on another ProMotion device, another iOS 26 version, or an iOS 27 beta? I am especially interested in whether there is a framework-supported workaround other than keeping all swipeable rows at a uniform height.

SwiftUI List swipeActions stutter with variable row heights on ProMotion
 
 
Q