ios xcode interface-builder uibarbuttonitem

iOS-UIBarButtonItem Identifier-opción para crear el botón de rueda dentada "configuración"



xcode interface-builder (4)

Componiendo CodaFi y user1046037 respuestas:

Creación de UIBarButtonItem con un carácter de Unicode como título.

UIBarButtonItem inicializar UIBarButtonItem con el título ( initWithTitle: no con el elemento del sistema ( initWithBarButtonSystemItem: .

Puede establecer un título personalizado con una cadena (como un carácter Unicode).

Puede cambiar el tamaño del título.

UIBarButtonItem *settingsButton = [[UIBarButtonItem alloc] initWithTitle:@"/u2699" style:UIBarButtonItemStylePlain target:self action:@selector(showSettings)]; UIFont *customFont = [UIFont fontWithName:@"Helvetica" size:24.0]; NSDictionary *fontDictionary = @{NSFontAttributeName : customFont}; [settingsButton setTitleTextAttributes:fontDictionary forState:UIControlStateNormal];

Quiero crear un UIBarButtonItem para representar la configuración de la aplicación (rueda dentada). Actualmente solo puedo encontrar una opción para crear UIBarButtonItem (Interface Builder> Atributes Inspector> identifier) ​​como "Add" (+), "Edit", "Done", "Cancel", etc.

No puedo encontrar una opción para crear un icono de configuración (rueda dentada). ¿Hay alguna manera de hacer esto en el constructor de interfaces o mediante código?

¿O tengo que crear una imagen y luego la imagen?


Esto me funciona en Swift 3 y iOS 10 ...

let settingsButton = UIBarButtonItem(title: NSString(string: "/u{2699}/u{0000FE0E}") as String, style: .plain, target: self, action: #selector(settings)) let font = UIFont.systemFont(ofSize: 28) // adjust the size as required let attributes = [NSFontAttributeName : font] settingsButton.setTitleTextAttributes(attributes, for: .normal)

Ver el comentario de @ hazernut en la respuesta aceptada. Sin agregar /u{0000FE0E} a la cadena, se muestra como un emoji y es inmune a cualquier configuración de apariencia. Agregar esa cadena lo arregla.


Para obtener el icono de la rueda dentada con Swift, haga lo siguiente en viewDidLoad() , suponiendo que haya conectado su botón desde su vista al controlador. ( @IBOutlet var settingsButton: UIBarButtonItem! : @IBOutlet var settingsButton: UIBarButtonItem! )

self.settingsButton.title = NSString(string: "/u{2699}") as String if let font = UIFont(name: "Helvetica", size: 18.0) { self.settingsButton.setTitleTextAttributes([NSFontAttributeName: font], forState: UIControlState.Normal) }


Unicode tiene varios ejemplos notables que simplemente puede copiar y pegar en una declaración de cadena en Xcode, o usar el Escape de Cadena Unicode estándar (/ uxxxx) e iOS en realidad es bastante fluido cuando se trata de Unicode (sé que algunos de los personajes son bastante feos , pero eso es Unicode para ti ''):

Carácter de Unicode ''ENGRANAJE SIN CUBO'' (U + 26ED): http://www.fileformat.info/info/unicode/char/26ed/index.htm

Carácter Unicode ''GEAR'' (U + 2699): http://www.fileformat.info/info/unicode/char/2699/index.htm

O prepare una imagen y establezca la propiedad customView de UIBarButtonItem en consecuencia.