es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Añadir UIImageview en titleview de UINavigationBar no está funcionando como se esperaba.

Estoy tratando de agregar un UIImageview en la propiedad titleView de la UINavigationBar utilizando el siguiente código. El problema es que, aunque defino un tamaño específico para la UIView que contiene el UIImageview que contiene la imagen, no funciona como se espera. El resultado es una imagen más grande en la barra de navegación de la que establecí con CGRectMake. Además, en algunas vistas no se alinea al centro. ¿Qué me falta? ¿Hay otra forma de agregar la imagen a la barra de navegación?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay algunos problemas potenciales con este código.

    En primer lugar, los marcos de la UIView y UIImageView se establecen en un ancho de 10 y una altura de 16, lo que es probablemente más pequeño de lo necesario para que la imagen se muestre correctamente. En su lugar, los marcos deberían establecerse en el tamaño de la imagen.

    En segundo lugar, el cálculo de la variable marginX puede no ser preciso, ya que asume que la barra de navegación está centrada y no tiene en cuenta ningún otro elemento en la barra de navegación.

    Para garantizar la alineación y el tamaño adecuados de la imagen, se puede utilizar el siguiente código en su lugar:

    - (void)viewDidLoad {
        [super viewDidLoad];
    
        UIImage *image = [UIImage sdk_imageName:@"logo.png"];
        UIImageView *imageView = [[UIImageView alloc] initWithImage:image];
        imageView.contentMode = UIViewContentModeScaleAspectFit;
    
        UIView *containerView = [[UIView alloc] initWithFrame:imageView.bounds];
        [containerView addSubview:imageView];
    
        self.navigationItem.titleView = containerView;
    }
    

    Este código establece el tamaño de UIImageView en el tamaño de la imagen y crea una UIView para contener UIImageView. Luego, containerView se establece como titleView del elemento de navegación, lo que garantiza la alineación y el tamaño adecuados de la imagen.

Comments are closed.