I am trying to use the topEdgeEffect API in iOS 26, but even setting the effect style to “.soft” does not work:
class ViewController: UIViewController {
var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
// Create and configure UIScrollView
scrollView = UIScrollView()
scrollView.translatesAutoresizingMaskIntoConstraints = false
scrollView.topEdgeEffect.style = .soft // <- This should work
view.addSubview(scrollView)
// Pin scrollView to fill the whole view
NSLayoutConstraint.activate([
scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
scrollView.topAnchor.constraint(equalTo: view.topAnchor),
scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor)
])
// Create label with multiline text
let label = UILabel()
label.translatesAutoresizingMaskIntoConstraints = false
label.numberOfLines = 0
label.text = """
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.
(More long text)
"""
// Add label to scrollView
scrollView.addSubview(label)
// Constraints to make label fill scrollView width and define content height
NSLayoutConstraint.activate([
label.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor),
label.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor),
label.topAnchor.constraint(equalTo: scrollView.topAnchor),
label.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor),
label.widthAnchor.constraint(equalTo: scrollView.widthAnchor) // fix width to scrollView width
])
}
}
Any help is appreciated! Running on Xcode 16.1.0 and an iOS 26.1 Simulator.
