2009-11-23 13 views

Respuesta

71

En primer lugar, su pregunta no es muy clara en cuanto a lo que está tratando de lograr, así que ... haga una pregunta general, obtenga una respuesta general.

UIButton tiene tres propiedades de tipo UIEdgeInsets - contentEdgeInsets, titleEdgeInsets y imageEdgeInsets. Puede usar estas propiedades para asignar inserciones específicas para todo el contenido de los botones, incluidos el título y la imagen, o uno u otro de forma individual.

Crea valores UIEdgeInsets utilizando la función UIEdgeInsetsMake(). UIEdgeInsets encapsula individualmente cuatro valores de CGFloat diferentes para los valores insertados de arriba, izquierda, abajo y derecha (respectivamente). Los valores positivos del recuadro reducen el área de contenido, mientras que los valores negativos del recuadro aumentarán efectivamente.

Si tiene una pregunta más específica sobre cómo usar UIEdgeInsets con UIButton, le sugiero que reconsidere la forma de formularla y vuelva a intentarlo. :) (pregunta a la dirección en el comentario)

Editar: Suena como que usted quiere hacer lo siguiente, entonces:

UIEdgeInsets titleInsets = UIEdgeInsetsMake(0.0, 7.0, 0.0, 0.0); 
button.titleEdgeInsets = titleInsets; 
+0

tengo un botón y quiero que el título de ese botón sea de 7 a 9 caracteres, incluso si configuré Alineación a la propiedad Izquierda. – Ankit

+10

es superior, izquierda, inferior, derecha: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIKitDataTypesReference/Reference/reference.html – kevboh

+0

Gracias por la gran explicación. – iOSAppDev

3

Si desea una extensión para Button y utiliza simplemente, utilizar este

button.setInset (parte superior: 0,0, a la izquierda: 7.0, parte inferior: 0,0, derecha: 0,0)

extension UIButton { 
    /** 
     Creates an edge inset for a button 
     :param: top CGFLoat 
     :param: left CGFLoat 
     :param: bottom CGFLoat 
     :param: right CGFLoat 
    */ 
    func setInset(#top: CGFloat, left: CGFloat, bottom: CGFloat, right: CGFloat) { 
      self.titleEdgeInsets = UIEdgeInsetsMake(top, left, bottom, right) 
    } 
} 
0

Tenga en cuenta que, en ocasiones, no será necesario configurar contentEdgeInsets. Solo dele al botón una mayor altura y ancho. El título en sí se centrará automáticamente.

Cuestiones relacionadas