ios - una - Alinear la imagen del botón con el borde derecho de UIButton
poner texto al lado de una imagen html (7)
Hay muchos hilos sobre la alineación de la imagen de un botón según el texto del título, pero no puedo encontrar nada sobre la alineación de la imagen con el lado derecho del botón.
Esto no tiene efecto:
button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 50);
¿Cómo se puede alinear a la derecha la imagen de un botón? ¿Se puede hacer en el Storyboard?
Encontré una manera difícil de actualizar las restricciones para el UIImageView
del botón
prueba esto
button.imageView?.trailingAnchor.constraint(equalTo: button.trailingAnchor, constant: -8.0).isActive = true
button.imageView?.centerYAnchor.constraint(equalTo: button.centerYAnchor, constant: 0.0).isActive = true
Pero no olvide agregar esto para hacer que las restricciones sean efectivas.
button.translatesAutoresizingMaskIntoConstraints = false
button.imageView?.translatesAutoresizingMaskIntoConstraints = false
Hay varias opciones diferentes para hacerlo.
Use semanticContentAttribute
button.semanticContentAttribute = .forceRightToLeft
También puede establecer atributos semánticos desde el diseño de la interfaz (storyboard).
o Use UIView que contiene UIButton y UIImage , como se muestra en esta instantánea.
- Configure el lado derecho de la imagen en UIView y deshabilite la interacción del usuario, de modo que la acción / toque del usuario pasará al botón.
- Agregue un botón con el mismo tamaño que UIView, en UIView, con color de fondo transparente y imagen de cubierta.
- Configure el desplazamiento del contenido para el botón como se muestra en esta instantánea.
Esto hará que sea fácil manejar la acción del botón, las propiedades y personalizar la posición y el tamaño de la imagen de acuerdo con sus requisitos. Prueba esto.
Hazlo como semántico por defecto, es decir, no especificado o fuerza de izquierda a derecha
y en button.imageEdgeInsets configurarlo como
UIEdgeInsets (arriba: 0, izquierda: self.view.frame.size.width - (el tamaño de la imagen + el espacio de alineación), abajo: 0, derecha: 0)
Esto asegurará que, independientemente del tamaño de la vista, siempre alineará la imagen desde el lado derecho del botón.
Pruebe el siguiente código:
btn.contentHorizontalAlignment = .right
Guión gráfico :
Pestaña Atributos> Asegúrate de que la pestaña Borde de contenido esté seleccionada para ''imagen'':
Luego, altera la propiedad ''Izquierda'' y no a la derecha, que es lo que está haciendo programáticamente. Así que en otras palabras, tu relleno es n desde la izquierda.
UIEdgeInsetsMake = TOP | IZQUIERDA | ABAJO | CORRECTO
Programmáticamente:
button.imageEdgeInsets = UIEdgeInsetsMake(0, 100, 0, 0);
Nota: es posible que también deba modificar la inserción de sus títulos, dependiendo de dónde se encuentre en referencia a su imagen.
Manera limpia de hacer esto en Swift
button.semanticContentAttribute = .forceRightToLeft
Espero que esto ayude