Здесь я указал на Referencing Outlet Collection
. Я не могу определить его использование в XCode4.
Я прошу ввести новую функцию "ССЫЛКА НА СБОРУ OUTLET COLLECTION" в InterfaceBuilder XCode4.
Спасибо, что поделились своими замечательными знаниями.
Здесь я указал на Referencing Outlet Collection
. Я не могу определить его использование в XCode4.
Я прошу ввести новую функцию "ССЫЛКА НА СБОРУ OUTLET COLLECTION" в InterfaceBuilder XCode4.
Спасибо, что поделились своими замечательными знаниями.
IBOutletCollection
- это способ группировки IBOutlets
. Представьте, что у вас есть 3 или 4 UILabels
, на которые вы будете применять стиль (шрифт, backgroundColour, opacity и т.д.). При IBOutletCollection
для этого становится тривиальным. Сначала вам нужно определить ваш IBOutletCollection
:
@property (nonatomic, retain) IBOutletCollection(UILabel) NSArray *labelsCollection;
(обратите внимание на тип, который мы помещаем в круглые скобки, хотя мы могли бы поставить id
, если бы у нас была коллекция микса)
Подключите IBOutlets
к построителю интерфейса, а затем просто выполните его:
for(UILabel *label in labelsCollection)
{
// Apply your styles
}
Надеюсь, это поможет вам понять:
http://useyourloaf.com/blog/2011/3/28/interface-builder-outlet-collections.html
Я только что взломал XIB.
Вы можете увидеть коллекцию Outlet, которая используется здесь:
Элемент управления может иметь несколько распознавателей жестов, которые хранятся в:
UITouch
@property(nonatomic,readonly,copy) NSArray *gestureRecognizers
Открыть IB
Перетащите UITextView в представление IB.
Перетащите указатель жестов жесткого диска в текстовое окно.
Щелкните по каждому в дереве объектов и откройте Инспектор подключений.
вы увидите, что в нее добавлена коллекция, а не одна розетка.
OUTLET COLLECTIONS
gestureRecognizers ------> Pinch Gesture
С помощью XCode Interface Builder создайте/подключите IBOutlets к коллекции IBOutlet. В результате вы получите следующий код в файле .h:
@property (strong, nonatomic) IBOutletCollection(UILabel) NSArray *labels;
В файле .m можно выполнить итерацию с помощью for-loop, чтобы получить нужные функции, такие как размер шрифта или цвет:
for (UILabel *label in self.labels) {
label.font = [UIFont systemFontOfSize:14];
label.textColor=[UIColor blueColor];
}
или
@synthesize labels;
...
for (UILabel *label in labels) {
label.font = [UIFont systemFontOfSize:14];
label.textColor=[UIColor blueColor];
}
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
}