FPS fallen bei Swiftui -Animation mit einem Winkelgradientenrand abIOS

Programmierung für iOS
Anonymous
 FPS fallen bei Swiftui -Animation mit einem Winkelgradientenrand ab

Post by Anonymous »

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).

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post