1
resposta

Erro ao tentar realizar o builder do app

Na aula 04, após criar o modelo das questões, passei a não conseguir realizar o builder. O console me apresenta o seguinte erro: O botão foi pressionado! 2024-02-25 12:10:01.940652-0300 IQuiz[16343:589825] [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "<NSLayoutConstraint:0x6000037b3390 UILabel:0x7f9c2291e390.width == 286 (active)>", "<NSLayoutConstraint:0x6000037b3480 UILayoutGuide:0x600002d95c00'UIViewSafeAreaLayoutGuide'.trailing == UILabel:0x7f9c2291e390.trailing + 64 (active)>", "<NSLayoutConstraint:0x6000037b3700 UILabel:0x7f9c2291e390.leading == UILayoutGuide:0x600002d95c00'UIViewSafeAreaLayoutGuide'.leading + 64 (active)>", "<NSLayoutConstraint:0x600003789860 'UIView-Encapsulated-Layout-Width' UIView:0x7f9c2291f0f0.width == 375 (active)>", "<NSLayoutConstraint:0x6000037b3520 'UIViewSafeAreaLayoutGuide-left' H:|-(0)-UILayoutGuide:0x600002d95c00'UIViewSafeAreaLayoutGuide' (active, names: '|':UIView:0x7f9c2291f0f0 )>", "<NSLayoutConstraint:0x6000037b35c0 'UIViewSafeAreaLayoutGuide-right' H:[UILayoutGuide:0x600002d95c00'UIViewSafeAreaLayoutGuide']-(0)-|(LTR) (active, names: '|':UIView:0x7f9c2291f0f0 )>" )

Will attempt to recover by breaking constraint <NSLayoutConstraint:0x6000037b3390 UILabel:0x7f9c2291e390.width == 286 (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful. 2024-02-25 12:10:01.942242-0300 IQuiz[16343:589825] [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "<NSLayoutConstraint:0x6000037b33e0 UILabel:0x7f9c2291e390.width >= 264 (active)>", "<NSLayoutConstraint:0x6000037b3480 UILayoutGuide:0x600002d95c00'UIViewSafeAreaLayoutGuide'.trailing == UILabel:0x7f9c2291e390.trailing + 64 (active)>", "<NSLayoutConstraint:0x6000037b3700 UILabel:0x7f9c2291e390.leading == UILayoutGuide:0x600002d95c00'UIViewSafeAreaLayoutGuide'.leading + 64 (active)>", "<NSLayoutConstraint:0x600003789860 'UIView-Encapsulated-Layout-Width' UIView:0x7f9c2291f0f0.width == 375 (active)>", "<NSLayoutConstraint:0x6000037b3520 'UIViewSafeAreaLayoutGuide-left' H:|-(0)-UILayoutGuide:0x600002d95c00'UIViewSafeAreaLayoutGuide' (active, names: '|':UIView:0x7f9c2291f0f0 )>", "<NSLayoutConstraint:0x6000037b35c0 'UIViewSafeAreaLayoutGuide-right' H:[UILayoutGuide:0x600002d95c00'UIViewSafeAreaLayoutGuide']-(0)-|(LTR) (active, names: '|':UIView:0x7f9c2291f0f0 )>" )

Will attempt to recover by breaking constraint <NSLayoutConstraint:0x6000037b33e0 UILabel:0x7f9c2291e390.width >= 264 (active)>

Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.

1 resposta

Olá, Igor.

Tudo bem?

O erro está dizendo que não é possível satisfazer todas as restrições simultaneamente. Em particular, parece que há um conflito com a largura do seu UILabel. Você tem uma restrição que define a largura do UILabel como 286 e outras duas restrições que definem a posição do UILabel em relação à UIViewSafeAreaLayoutGuide com um espaçamento de 64 em ambos os lados. Isso pode ser problemático se a largura total disponível for menor que a soma desses valores (286 + 64 + 64 = 414), que é maior que a largura do seu UIView (375).

Uma solução seria remover a restrição que define a largura do UILabel como 286 e permitir que a largura seja determinada pelas restrições de espaçamento em relação à UIViewSafeAreaLayoutGuide.

Aqui está um exemplo de como você pode fazer isso no código:

// Supondo que você tenha uma referência para a restrição de largura do UILabel
let widthConstraint: NSLayoutConstraint = ...

// Você pode desativar essa restrição
widthConstraint.isActive = false

Depois de fazer isso, você deve ser capaz de construir e executar o seu aplicativo sem ver o erro. Lembre-se de que você pode precisar ajustar outras restrições para obter o layout desejado.

Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.