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.

La imagen de fondo de Swift no se estira hasta los límites.

Actualmente estoy tratando de agregar una imagen de fondo a mi barra de navegación, pero la imagen de fondo en sí no se está estirando para llenar los límites del espacio especificado (el botón rosado debería estar cubriendo el cuadro azul o al menos acercarse al mismo tamaño).

¿Cómo puedo hacer que la imagen de fondo se estire / llene el espacio?

Captura de pantalla:
screenshot

Cómo agrego el botón:

        let newsButton = UIButton(type: .custom)
        newsButton.translatesAutoresizingMaskIntoConstraints = false
        newsButton.backgroundColor = .blue
        newsButton.setTitle(NSLocalizedString("News", comment: "News button"), for: .normal)
        newsButton.layer.cornerRadius = 7
        newsButton.titleLabel?.font = .systemFont(ofSize: 20)

        newsButton.addTarget(self, action: #selector(onClick(_:)), for: .touchUpInside)

   if let image = UIImage(named: "pink_button") {
        newsButton.setBackgroundImage(image, for: .normal)
    }

    NSLayoutConstraint.activate([
        newsButton.widthAnchor.constraint(equalToConstant: 128),
        newsButton.heightAnchor.constraint(equalToConstant: 43)
    ])

    navigationItem.titleView = newsButton

pink_button

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para hacer que la imagen de fondo se estire y llene el espacio de la barra de navegación, puedes intentar establecer la propiedad contentMode de la vista de imagen de fondo en .scaleAspectFill.

    Para hacer esto, puedes agregar la siguiente línea de código después de establecer la imagen de fondo:

    newsButton.imageView?.contentMode = .scaleAspectFill
    

    Esto debería escalar la imagen de fondo para llenar los límites de la vista del botón.

Comments are closed.