AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-13125522

Ufuk Köşker's questions

Martin Hope
Ufuk Köşker
Asked: 2024-07-25 19:50:12 +0800 CST

Problema de animação do SwiftUI (após atribuição do texto)

  • 5

insira a descrição da imagem aqui

Eu uso o título e a descrição computedProperties na enumeração PopupType em PopupView . Enquanto a animação é offset , por que os Text vêm depois?

Vista principal:

VStack(spacing: 30) {
                            Spacer()
                            Button {
                                authManager.popupType = .warning(title: "Are you sure ?", desc: "Do you wanna sign out ?")
                            } label: {
                                Text("Sign Out")
                            }
                        }
                        .frame(maxWidth: .infinity, maxHeight: .infinity)
                        .padding(.bottom, 16)
                        .overlay {
                            PopupView(
                                firstButtonTitle: Constant.okButtonTitle,
                                actionButtonTitle: Constant.goBackBtnTitle,
                                status: $authManager.popupType)
                        }

Tipo de pop-up:

enum PopupType: Equatable {
    case none
    case warning(title: String, desc: String)
    case success(String)
    case error(String)
    
    var icon: String {
        switch self {
        case .none:
            return "circle"
        case .warning:
            return "exclamationmark.circle"
        case .success:
            return "checkmark.circle"
        case .error:
            return "xmark.circle"
        }
    }
    
    var title: String {
        switch self {
        case .none:
            return ""
        case .warning(let title, _):
            return title
        case .success:
            return "Başarılı"
        case .error:
            return "Hata"
        }
    }
    
    var description: String {
        switch self {
        case .none:
            return ""
        case .warning(_, let desc):
            return desc
        case .success(let desc):
            return desc
        case .error(let desc):
            return desc
        }
    }
    
    var iconColor: Color {
        switch self {
        case .none:
            return .clear
        case .warning:
            return Color(uiColor: .orange)
        case .success:
            return Color(uiColor: .green)
        case .error:
            return Color(uiColor: .red)
        }
    }
}

Pop-upView:

struct PopupView: View {
    enum ActionType {
        case dismiss
        case custom
    }
    
    var showActionButton: Bool = true
    var firstButtonTitle: String = ""
    var actionButtonTitle: String = ""
    var actionType: ActionType = .custom
    @Binding var status: PopupType
    var onAction: (() -> ())? = { }
    @Environment(\.dismiss) var dismiss
    var body: some View {
        VStack {
            Spacer()
            VStack(spacing: 16) {
                Image(systemName: status.icon)
                    .resizable()
                    .frame(width: 50, height: 50)
                    .fontWeight(.thin)
                    .colorMultiply(status.iconColor)
                
                Text(status.title)
                    .bold()
                
                Text(status.description)
                    .font(.system(size: 16, weight: .light))
                    .multilineTextAlignment(.center)
                
                HStack {
                    Button(action: { status = .none }, label: {
                        Text(firstButtonTitle)
                            .bold()
                            .frame(maxWidth: .infinity)
                            .frame(height: 50)
                            .foregroundStyle(Color(uiColor: .systemBlue))
                            .background(.ultraThinMaterial)
                            .cornerRadius(8.0)
                    })
                    if showActionButton {
                        Button(action: {
                            switch actionType {
                            case .dismiss:
                                dismiss()
                            case .custom:
                                onAction?()
                            }
                            status = .none
                        }, label: {
                            Text(actionButtonTitle)
                                .bold()
                                .frame(maxWidth: .infinity)
                                .frame(height: 50)
                                .foregroundStyle(Color(uiColor: .white))
                                .background(Color(uiColor: .systemBlue))
                                .cornerRadius(8.0)
                        })
                    }
                }
            }
            .padding(16)
            .background(.ultraThinMaterial)
            .cornerRadius(8.0)
            .padding(16)

        }
        .background(Color.white.opacity(0.001))
        .offset(y: status == .none ? UIScreen.main.bounds.height : .zero)
        .animation(.easeInOut, value: status)
    }
}
animation
  • 1 respostas
  • 22 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve