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-1619193

Shawn Frank's questions

Martin Hope
Shawn Frank
Asked: 2025-03-29 17:30:00 +0800 CST

Como renderizar imagens @2x e @3x de uma URL em uma imagem SwiftUI

  • 5

Tenho a necessidade de carregar uma imagem de anúncio no meu aplicativo e geralmente são logotipos de empresas.

O problema com os logotipos é que, embora eles possam ter uma altura específica, sua largura pode mudar.

Então comecei com uma solução muito simples: carreguei uma imagem png de 90 x 20 no armazenamento do Firebase e usei o código simples:

Image(uiImage: image)e isso renderizou a imagem em 90 x 20.

Alguns detalhes deixados de fora são que eu faço uma solicitação de rede em segundo plano para baixar esta imagem e então - sinto que isso pode não ser relevante, mas posso adicionar código se necessário.

O problema é que em um dispositivo iPhone 16 (normal e profissional), essas imagens ficam muito borradas.

Então o que eu fiz foi carregar uma imagem 3x, mas o código anterior fez a imagem crescer muito, pois agora as dimensões da imagem eram 270 x 60.

Então, para renderizar a imagem de alta qualidade nas dimensões anteriores, fiz o seguinte:

Image(uiImage: image)
    .resizable()
    .renderingMode(.template)
    .scaledToFit()
    .frame(height: 20)

// The width of the parent view hosting this had a max width of infinity

Agora isso funcionou e as imagens ficaram mais nítidas. O problema com a especificação de uma altura codificada de 20, nós nos deparamos com o problema com alguns logotipos de empresas sendo um pouco mais altos, então nós criamos uma regra onde a altura máxima do logotipo deveria ser 28, então:

  1. Se eu carregar 90 x 20, a altura das imagens será 20
  2. Se eu carregasse 360 ​​x 80, a altura da imagem seria 28

Eu consigo isso através de:

Image(uiImage: image)
    .resizable()
    .renderingMode(.template)
    .tint(Constants.Colors.logo)
    .scaledToFit()
    .frame(height: min(image.size.height, 28))

Isso funciona para a maioria dos casos de uso, no entanto, se eu quiser que uma imagem seja renderizada em 90 x 20, mas com alta qualidade, e se eu carregar uma imagem em 3x 270 x 60, ela não será renderizada em 90 x 20, mas sim em 126 x 28 porque 28 é a altura máxima.

Embora isso possa ser aceitável, qual seria uma boa maneira de renderizar as imagens 2x e 3x em sua dimensão original em vez de fazer a imagem crescer até a altura máxima de 28?

  • 1 respostas
  • 48 Views
Martin Hope
Shawn Frank
Asked: 2023-09-07 06:21:45 +0800 CST

O tamanho do quadro UIButton não é atualizado para suportar o aumento do tamanho da fonte nas configurações

  • 5

Eu tenho um UIButton básico com as seguintes restrições:

UIButton autolayout restrição tamanho da fonte do texto dinâmico

Eu tenho algumas restrições básicas e superiores e uma restrição >= de largura e altura definida como 48, pois quero que 48 seja minha largura e altura mínimas para o botão.

Meu objetivo é fazer com que o texto no botão aumente à medida que o usuário altera o tamanho da fonte nas configurações.

Este texto no botão parece estar aumentando de tamanho, no entanto, o quadro não parece estar sendo atualizado para acomodar esse aumento.

insira a descrição da imagem aqui

Isto é o que quero dizer: definir o tamanho da fonte no painel de controle Painel de controle de tamanho de fonte de texto dinâmico iOS Swift

No entanto, se eu sair do aplicativo e iniciá-lo novamente, o tamanho do quadro será calculado corretamente e, ao alterar o tamanho do texto no painel de controle, parece fazer com que o tamanho da fonte no botão diminua e aumente adequadamente.

Aumento do tamanho do quadro UIButton

Parece que uma largura/altura máxima precisa ser determinada primeiro.

No código eu até configurei isso:

skipButton.titleLabel?.font = UIFont.font(forTextStyle: .body, fontName: .suecaNanoRegular, size: 14)
skipButton.titleLabel?.adjustsFontForContentSizeCategory = true

Como posso fazer com que meu UIButton suporte tamanhos de fonte dinâmicos em tempo de execução.

Aqui estão minhas outras configurações de botão, se isso ajudar na depuração.

Configurações do UIButton storyboard tamanho de texto dinâmico fonte swift iOS

ios
  • 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