Feedback ID: FB23086400
On iOS 27 beta 1, .scrollEdgeEffectStyle(.soft, for: .top) on a List underneath a custom .safeAreaBar(edge: .top) no longer renders the progressive fade-blur. The top edge is fully transparent — scrolled rows pass under the bar with no visual treatment at all, as if scrollEdgeEffectDisabled() had been applied.
What I've verified so far:
- .hard renders correctly in the exact same hierarchy; only .soft is affected.
- The same binary works correctly on iOS 26.x Xcode preview. I'm building with Xcode 26.3 (iOS 26 SDK).
Minimal reproduction:
import SwiftUI
struct EdgeEffectRepro: View {
enum Style: String, CaseIterable, Identifiable {
case automatic, soft, hard
var id: Self { self }
var value: ScrollEdgeEffectStyle {
switch self {
case .automatic: .automatic
case .soft: .soft
case .hard: .hard
}
}
}
@State private var style: Style = .soft
@State private var useSystemBarOnly = false
var body: some View {
NavigationStack {
List(0..<60, id: \.self) { i in
Text("Row \(i)")
.frame(maxWidth: .infinity, alignment: .leading)
.listRowBackground(
i.isMultiple(of: 2)
? Color.orange.opacity(0.45)
: Color.teal.opacity(0.45)
)
}
.scrollIndicators(.hidden)
.scrollEdgeEffectStyle(style.value, for: .top)
.safeAreaBar(edge: .top) {
if !useSystemBarOnly {
VStack(spacing: 8) {
HStack {
Text("Custom Top Bar")
.font(.system(size: 28, weight: .bold))
Spacer()
}
HStack {
Text("Second row (e.g. date range picker)")
.font(.caption)
.foregroundStyle(.secondary)
Spacer()
}
}
.padding(.horizontal)
}
}
.safeAreaInset(edge: .bottom) {
VStack(spacing: 8) {
Picker("Edge effect style", selection: $style) {
ForEach(Style.allCases) { Text($0.rawValue).tag($0) }
}
.pickerStyle(.segmented)
Toggle("System bar only (control group)", isOn: $useSystemBarOnly)
.font(.caption)
}
.padding()
.background(.regularMaterial)
}
.navigationTitle("EdgeEffect Repro")
.navigationBarTitleDisplayMode(.inline)
}
}
}
Steps: run on iOS 27 beta 1, set the picker to soft, scroll rows under the bar.
Expected: fade-blur as on iOS 26.
Actual: fully transparent. Switch to hard: renders fine.
Hello all,
Thank you for reporting, and for this easy to demonstrate sample project @NSCruiser.
I have related all of these reports and made sure they were seen by the relevant engineering team.
Generally, updates will be provided to you through Feedback Assistant. There, you can track if the report is still being investigated, has a potential identified fix, or has been resolved in another way.
In the meantime, continue using this thread to discuss workarounds or share your updates as you test against versions that are released.
For more details on Feedback Status, please see “Understanding the Status of Your Feedback” linked here: https://developer.apple.com/bug-reporting/status
Thank you.
Travis