tab interfaces human guidelines bottom bar ios iphone xcode4 interface-builder iboutletcollection

ios - interfaces - ¿Qué es referenciar la colección de tomas en Xcode4 Interface Builder?



status bar iphone (4)

He estado pirateando XIB.

Puede ver una colección de Outlet en uso aquí:

Un control puede tener múltiples reconocedores de gestos que se almacenan en:

UITouch @property(nonatomic,readonly,copy) NSArray *gestureRecognizers

AB abierto

Arrastre UITextView a una vista de IB.

Arrastre el Reconocedor de gestos de pellizco a la vista de texto.

Haga clic en cada uno en el árbol de objetos y abra el Inspector de Conexiones.

verá que se ha agregado una colección, no una única salida.

OUTLET COLLECTIONS gestureRecognizers ------> Pinch Gesture

Aquí, he señalado a la Referencing Outlet Collection . No puedo descifrar su uso en XCode4.

Estoy pidiendo la `nueva característica de REFERENCING OUTLET COLLECTION en InterfaceBuilder of XCode4".


Usando XCode Interface Builder, crea / conecta tus IBOutlet a IBOutlet Collection. Como resultado, obtendrá el siguiente código en el archivo .h:

@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *labels;

En el archivo .m puede iterar usando for-loop para obtener las características deseadas, como el tamaño de fuente o el color:

for (UILabel *label in self.labels) { label.font = [UIFont systemFontOfSize:14]; label.textColor=[UIColor blueColor]; }

o

@synthesize labels; ... for (UILabel *label in labels) { label.font = [UIFont systemFontOfSize:14]; label.textColor=[UIColor blueColor]; }


IBOutletCollection es una forma de agrupar IBOutlets . Imagine que tiene 3 o 4 UILabels , en los que aplicará un estilo (fuente, UILabels fondo, opacidad, etc.). Con IBOutletCollection , se vuelve trivial hacer esto. Primero necesita definir su IBOutletCollection :

@property (nonatomic, retain) IBOutletCollection(UILabel) NSArray *labelsCollection;

(observe el tipo que estamos poniendo entre paréntesis, aunque podríamos poner una id , si tuviéramos una colección mixta)

Conecte los IBoutlets en Interface Builder y luego simplemente itere:

for(UILabel *label in labelsCollection) { // Apply your styles }

Espero que esto te ayude a entender:

http://useyourloaf.com/blog/2011/3/28/interface-builder-outlet-collections.html


swift: // create outlet colllections @IBOutlet var name: [UILabel]! @IBOutlet var ageLabel: [UILabel]! @IBOutlet var genderLabel: [UILabel]! @IBOutlet var weightLabel: [UILabel]! @IBOutlet var heightLabel: [UILabel]! @IBOutlet var bmiLabel: [UILabel]! @IBOutlet var smokerLabel: [UILabel]! @IBOutlet var hdraLabel: [UILabel]! // declare global vars var names: UILabel; var ageLabels: UILabel; var genderLabels: UILabel; var weightLabels: UILabel; var heightLabels: UILabel; var bmiLabels: UILabel; var smokerLabels: UILabel; var hdraLabels: UILabel; // assign values for name:UILabel in self.name { self.names = name } for ageLabel:UILabel in self.ageLabel { self.ageLabels = ageLabel } for genderLabel:UILabel in self.genderLabel { self.genderLabels = genderLabel } for weightLabel:UILabel in self.weightLabel { self.weightLabels = weightLabel } for heightLabel:UILabel in self.heightLabel { self.heightLabels = heightLabel } for bmiLabel:UILabel in self.bmiLabel { self.bmiLabels = bmiLabel } for smokerLabel:UILabel in self.smokerLabel { self.smokerLabels = smokerLabel } for hdraLabel:UILabel in self.hdraLabel { self.hdraLabels = hdraLabel }