Support custom scale property for dynamically downloaded tab/toolbar icons

Abierto
#8,330 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
30/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
objective-c, react-native
Área
mobile

Línea de trabajo

Comienza en el punto de entrada de ImageParser y revisa el PR #8329, que el issue identifica como el que añade esta compatibilidad. Confirma el comportamiento de escala opcional para las fuentes de imagen URI y que las fuentes existentes conservan su comportamiento actual; se considera terminado cuando el tamaño solicitado del icono funciona sin regresiones.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Description

When using dynamically downloaded images (e.g. user avatars fetched from a CDN) as tab-bar or toolbar icons, there is no way to specify the image scale factor. ImageParser delegates to [RCTConvert UIImage:], which defaults to scale = 1.0 for URI-based images. This causes icons to render at their full pixel size on Retina displays instead of the intended logical size.

The standard @2x/@3x filename suffix convention does not apply here because images are downloaded to the cache directory at runtime with arbitrary filenames.

Steps to reproduce

  1. Download an image to the local filesystem (e.g. a 60×60 px avatar for a 20pt tab icon on a 3x device)
  2. Pass it as a bottom tab icon: { uri: 'file:///path/to/avatar.png' }
  3. Observe the icon renders at 60×60 points instead of 20×20 points

Expected behavior

Callers should be able to pass an optional scale property in the image source dictionary:

icon: { uri: 'file:///path/to/avatar.png', scale: 3 }

ImageParser would then re-create the UIImage at the requested scale using [UIImage imageWithCGImage:scale:orientation:], so the icon renders at the correct logical size.

Proposed fix

PR #8329 adds this support in a backwards-compatible way — the scale key is only read when explicitly provided.

Environment

  • react-native-navigation: 8.8.8
  • React Native: 0.85.3
  • Platform: iOS
Lenguaje dominante
MDX
Estrellas
13.2k
Forks
2.6k
Merge medio
2 d 10 h
PR fusionados (30 d)
6

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de wix/react-native-navigation

Todos los issues de wix/react-native-navigation

Issues similares

Más issues de Mobile Dev

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.