FPS падает с границей углового градиента во время анимации SwiftuiIOS

Программируем под IOS
Ответить
Anonymous
 FPS падает с границей углового градиента во время анимации Swiftui

Сообщение Anonymous »

Я добавляю границу и размытый эффект на форму во время анимации (появляется страница) и вижу, как FPS падает при использовании угловой диагностики в качестве цвета границы. Я не вижу капель при использовании нормального цвета. Падение заметно при настройке устройства в режим «низкая батарея».

Код: Выделить всё

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())
}
}
Если я изменяю заполнение на стандартный цвет, такой как Color.blue , я не вижу, чтобы FPS не ударил. Есть идеи относительно того, как сделать градиент более эффективно? Я попытался trawngroup () , который улучшает FPS, но это делает Blur плохо, и я также хочу иметь возможность анимировать размер размытия (+ ширина границы, непрозрачность).

Подробнее здесь: https://stackoverflow.com/questions/795 ... -animation
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»