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.