ios - bar - ¿Cómo creo una categoría en Xcode 6 o superior?
navigation bar swift 4 (8)
Ampliando la fantástica respuesta de unmircea sobre cómo crear una categoría personalizada para implementar una paleta de colores UIColor
personalizada, puede crear una categoría.
Una vez que haya creado su categoría (en este ejemplo, es una categoría llamada ColorPalette
de la clase UIColor
), tendrá un encabezado y un archivo de implementación.
UIColor + ColorPalette.h
#import <UIKit/UIKit.h>
@interface UIColor (ColorPalette)
// Your custom colors
+ (UIColor *) customRedButtonColor;
+ (UIColor *) customGreenButtonColor;
@end
UIColor + ColorPalette.m
#import "UIColor+ColorPalette.h"
@implementation UIColor (ColorPalette)
// Button Colors
+ (UIColor *) customRedButtonColor {
return [UIColor colorWithRed:178.0/255.0 green:25.0/255.0 blue:0.0/255.0 alpha:1.0];
}
+ (UIColor *) customGreenButtonColor {
return [UIColor colorWithRed:20.0/255.0 green:158.0/255.0 blue:96.0/255.0 alpha:1.0];
}
Para usar su paleta de colores personalizada, solo importe el encabezado a la clase donde le gustaría implementar sus colores personalizados:
#import "UIColor+ColorPalette.h"
y llama al color como lo harías con un color estándar como redColor
, greenColor
o blueColor
.
Aquí hay un enlace a una discusión un poco más profunda sobre la creación de una paleta personalizada.
Además, aquí hay una herramienta para ayudarlo a seleccionar los valores de color personalizados.
Quiero crear una categoría en UIColor
en mi aplicación usando Xcode 6. Pero el problema es que en Xcode 6 no hay una plantilla de archivo de categoría Objective-C.
¿Hay alguna opción para crear una categoría en Xcode 6?
No hay una plantilla predefinida para crear una categoría en Xcode 6 beta (por el momento), pueden agregar esta opción más adelante. Como alternativa, puede crear una Cocoa Touch Class
(no es adecuada, pero no de otra manera) llamada UIImage+Additions
(ClassName + CategoryName) y anular su interfaz e implementación de alguna manera como
UIImage + Additions.h
#import <UIKit/UIKit.h>
@interface UIImage(Additions)
+(void)testMethod;
@end
UIImage + Additions.m
#import "UIImage+Additions.h"
@implementation UIImage (Additions)
+(void)testMethod
{
}
@end
Editar
Esta respuesta se escribió antes de encontrar una forma de crear una categoría en la versión beta de Xcode 6. Compruebe la respuesta de unmircea para conocer la forma correcta de crear la categoría.
No se olvidaron. Simplemente lo movieron sin decirle a nadie.
Haga clic en
File
->New
->File
Seleccione el
Objective-C file
enSources
eniOS
oMac OS
respectivamente y haga clic en SiguienteAhora en
File Type:
elijaCategory
,Protocol
oExtension
PD. En File Name:
lo que escriba aquí será la Category
, el Protocol
o el Nombre de la Extension
.
Para crear CategoryBaseClass + CategoryName.m / .h :
- Archivo → Nuevo → Archivo ... o use ⌘N .
- Seleccione Objective-C File .
- Escriba el nombre de la categoría, seleccione Tipo de archivo: Categoría y luego seleccione la clase base.
- Completa el flujo para crear la categoría.
Puede crear un archivo de "extensión" como NSString + Helper:
1: File → New → File... or use ⌘N.
2: Name NSString+Helper (For example)
3: create the file
4: Remove the code from file
5: add
extension NSString {
}
Hecho. disfrutar de la codificación
Simplemente puede copiar las plantillas que desee de una versión anterior de Xcode. Hice un script de shell para esto: https://github.com/cDigger/AddMissingTemplates
Actualización de Xcode6-Beta5
La interfaz ahora ha cambiado y es posible agregar una categoría directamente desde la ventana Nuevo> Archivo.
Ver la respuesta de unmircea .
Yo mismo me sorprendí, y supongo que debido a Swift se olvidaron del buen viejo Objective-C.
Tienes dos opciones:
Cree una clase de Objective-C con el nombre de la categoría, ejemplo
UIView+Powerups
, luego cambie manualmente la interfaz para que coincida con la de la categoría. Tenga en cuenta que el fragmento de la interfaz y la implementación de la categoría sigue funcionando, por lo que es muy fácil: escriba@interface-category
y@implementation-category
.Importarlo desde Xcode 5! Utilice este comando:
cp -r /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File/ Templates/Cocoa/ Touch/Objective-C/ category.xctemplate /Applications/Xcode6-Beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/File/ Templates/Source/
Cierre y vuelva a abrir Xcode 6 y encontrará "Categoría de Objective-C" en el asistente para el nuevo archivo.