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.