El tamaño de fuente de accesibilidad grande para el título de UIButton (.body o .headline) no aumenta el marco del botón, sino que solo aumenta el texto del título. Se puede ver claramente en la siguiente captura de pantalla:
Las restricciones son solo superiores, iniciales y finales, también en el código he agregado 2 líneas:
button.adjustsImageSizeForAccessibilityContentSizeCategory = true
button.titleLabel?.numberOfLines = 0
El color de fondo amarillo es el del botón, lo que identifica que la única área que se puede tocar es el área amarilla. Quiero aumentar el marco del botón para que se pueda tocar toda el área de texto.
Para empezar, hay un problema con las etiquetas de botones de varias líneas; no creo que esté directamente relacionado con el uso de fuentes de accesibilidad.
Intente usar esta subclase de botones:
class MultilineTitleButton: UIButton {
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
commonInit()
}
override init(frame: CGRect) {
super.init(frame: frame)
commonInit()
}
func commonInit() -> Void {
self.titleLabel?.numberOfLines = 0
self.titleLabel?.textAlignment = .center
self.setContentHuggingPriority(UILayoutPriority.defaultLow + 1, for: .vertical)
self.setContentHuggingPriority(UILayoutPriority.defaultLow + 1, for: .horizontal)
}
override var intrinsicContentSize: CGSize {
let size = self.titleLabel!.intrinsicContentSize
return CGSize(width: size.width + contentEdgeInsets.left + contentEdgeInsets.right, height: size.height + contentEdgeInsets.top + contentEdgeInsets.bottom)
}
override func layoutSubviews() {
super.layoutSubviews()
titleLabel?.preferredMaxLayoutWidth = self.titleLabel!.frame.size.width
}
}
En él se establecen de la titleLable .numberOfLines = 0
, .textAlignment = .center
y las prioridades de abrazo, y luego anulación de intrinsicContentSize
decirle a la disposición automática el tamaño adecuado de la TitleLabel.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras