#swiftui
#swiftui
Вопрос:
Для меня это очень странная ошибка или проблема! У меня есть красный прямоугольник (), который вращается одним нажатием пользователя, и после этого у меня есть теневой вид для моего прямоугольника (). после поворота появляется более 1 теневого вида для прямоугольника (), которые отображаются друг над другом и не работают! Для меня это не логично, почему это происходит? .shadow должен возвращать только 1 вид, но в этом случае возвращает более 1 вида для угла (градусов: 0) если вы начинаете с более чем 0, все работает просто отлично, например, используйте это: Угол (градусов: 10). Как только вы запустите приложение с углом (градусов: 0), оно не будет работать!
struct ContentView: View {
@State var rotationAngle: Angle = Angle(degrees: 0) //← Here
var body: some View {
Rectangle()
.fill(Color.red)
.frame(width: 200, height: 100, alignment: .center)
.rotationEffect(rotationAngle)
.onTapGesture
{
rotationAngle = Angle(degrees: 10)
}
.shadow(color: Color.black, radius: 10, x: 0, y: 20)
}
}
Это мое спасение для временного использования:
.rotationEffect(rotationAngle == Angle(degrees: 0) ? Angle(degrees: 0.001) : rotationAngle)
что у вас?
Комментарии:
1. Это странная ошибка. Обходной путь: начните с
Angle(degrees: 360)
.2. да! это странно! Если бы я задал угол (градусов: 0.00000000001), это работало бы нормально, но не работало бы для 0 или 0.0
3. Если вы начнете с
Angle(degrees: -20)
, он будет работать нормально, пока не попадет10
.4. да, если я использую -20.0000000001, все будет работать нормально! но не -20
5. Я думаю, что это ошибка SwiftUI, связанная с функцией тени от Apple, забыл очистить старый contextView, не имеет значения, насколько велик ваш шаг угла поворота или с какой степени вы начинаете! это создает проблему для очистки контекста для нулевой степени! ДАЖЕ с радианами! Если вы начнете с zeo, это не сработает
Ответ №1:
Проблема была решена с помощью Xcode 12.1 / iOS 14.1, которая была ошибкой более старой версии.