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.

Margen izquierdo de UIPickerView

Para un UIPickerView con un título, estoy buscando una forma de proporcionar un margen izquierdo al título. Actualmente, parece que las dos primeras palabras están recortadas.

Estoy utilizando el siguiente método UIPickerView para asignar el título.

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
    let pickerLabel = UILabel()
    let title = NSAttributedString(string: castProductDetails[row].price, attributes:[.font: FontFamily.Roboto.medium.font(size: 16.0), .foregroundColor: Asset.Colors.primaryText.color])
    pickerLabel.attributedText = title
    return pickerLabel
}

Agregar captura de pantalla para referencia.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para proporcionar un margen izquierdo al título de un UIPickerView, puedes establecer la propiedad textAlignment de pickerLabel en .left y luego agregar un relleno izquierdo utilizando la propiedad edgeInsets de NSAttributedString. Así es como puedes modificar el método pickerView(_:viewForRow:forComponent:reusing:):

    func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
        let pickerLabel = UILabel()
        let title = NSAttributedString(string: castProductDetails[row].price, attributes:[
            .font: FontFamily.Roboto.medium.font(size: 16.0),
            .foregroundColor: Asset.Colors.primaryText.color,
            .paragraphStyle: {
                let style = NSMutableParagraphStyle()
                style.alignment = .left
                style.firstLineHeadIndent = 10.0 // Ajusta según tus necesidades
                return style
            }()
        ])
        pickerLabel.attributedText = title
        return pickerLabel
    }
    

    En el código anterior, hemos establecido la propiedad textAlignment de pickerLabel en .left, lo que asegura que el texto esté alineado en el lado izquierdo de la etiqueta.

    A continuación, estamos utilizando un objeto NSMutableParagraphStyle y estableciendo su propiedad firstLineHeadIndent en 10.0, lo que añade un margen izquierdo de 10.0 puntos a la primera línea del texto. Puedes ajustar este valor según tus necesidades.

    Finalmente, establecemos el atributo paragraphStyle de NSAttributedString en el objeto NSMutableParagraphStyle que acabamos de crear. Esto asegura que el margen izquierdo se aplique solo al título y no a cualquier otro texto que pueda agregarse posteriormente.

    Con estas modificaciones, deberías poder proporcionar un margen izquierdo al título de tu UIPickerView.

Comments are closed.