FPS fallen bei Swiftui -Animation mit einem Winkelgradientenrand ab

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: FPS fallen bei Swiftui -Animation mit einem Winkelgradientenrand ab

by Anonymous » 13 Apr 2025, 02:18

Ich füge einen Rand- und Unschärfeneffekt auf eine Form während einer Animation hinzu (Seite erscheint) und sehe FPS -Tropfen bei der Verwendung eines Winkelgradienten als Farbe des Randes. Ich sehe die Tropfen nicht, wenn ich eine normale Farbe benutze. Der Tropfen ist beim Einstellen eines Geräts in den Modus "niedriger Akku" auffällig.

Code: Select all

struct BorderBlur: ViewModifier {
var fillColor: some ShapeStyle {
AngularGradient(
colors: [.blue, .purple, .green, .blue],
center: .center)
}

var myShape : some Shape {
RoundedRectangle(cornerRadius:36)
}

let borderWidth = 3.0
let blurRadius = 5.0

public func body(content: Content) -> some View {
content
.overlay(
myShape
.stroke(lineWidth: borderWidth)
.fill(fillColor)
.padding(borderWidth)
)
.overlay(
myShape
.stroke(lineWidth: borderWidth)
.fill(fillColor)
.blur(radius: blurRadius)
.padding(borderWidth)
)
.overlay(
myShape
.stroke(lineWidth: borderWidth)
.fill(fillColor)
.blur(radius: blurRadius / 2)
.padding(borderWidth)
)
}
}

extension View {
public func borderBlur() -> some View {
return modifier(BorderBlur())
}
}
Wenn ich das FillColor in eine Standardfarbe wie Color ändere. Blue sehe ich keine FPS -Tropfen. Irgendwelche Ideen, wie der Gradient effizienter wird? Ich habe versucht Drawinggroup () , das die FPS verbessert, aber es macht die Unschärfe schlecht, und ich möchte auch in der Lage sein, die Unschärfe zu belasten (+ Grenzbreite, Deckkraft).

Top