Saltar al contenido

Borde y relleno de UILabel

Luego de investigar con especialistas en el tema, programadores de diversas áreas y profesores hemos dado con la respuesta al problema y la compartimos en esta publicación.

Solución:

¡Resolví el problema!

Para aquellos que enfrentan el mismo problema:

1- Haz una clase que se extienda desde UILabel:

UILabelPadding.swift:

class UILabelPadding: UILabel 

    let padding = UIEdgeInsets(top: 2, left: 8, bottom: 2, right: 8)
    override func drawText(in rect: CGRect) 
        super.drawText(in: rect.inset(by: padding))
    

    override var intrinsicContentSize : CGSize 
        let superContentSize = super.intrinsicContentSize
        let width = superContentSize.width + padding.left + padding.right
        let heigth = superContentSize.height + padding.top + padding.bottom
        return CGSize(width: width, height: heigth)
    




2- Establezca el tipo de su etiqueta en UILabelPadding y asegúrese de que el tipo también esté configurado en el guión gráfico.

Uso una subclase de etiqueta que hace mucho de lo que describes. Se parece a esto:

class MyBoundedLabel: UILabel 
    override func drawText(in rect: CGRect) 
        let context = UIGraphicsGetCurrentContext()!
        context.stroke(self.bounds.insetBy(dx: 1.0, dy: 1.0))
        super.drawText(in: rect.insetBy(dx: 5.0, dy: 5.0))
    

Puede probar eso y luego mover los números y otros detalles para que se vean como usted quiere.

Tienes la opción de defender nuestra faena añadiendo un comentario o valorándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *