web-dev-qa-db-ja.com

Xcode Interface Builderのアウトレットコレクションの参照とは何ですか?

enter image description here

ここで、私はReferencing Outlet Collectionを指摘しました。 XCode4での使用法を理解できません。

「XCode4のInterfaceBuilderでのREFERENCINGOUTLETCOLLECTIONの新機能」を求めています。

35

IBOutletCollectionは、IBOutletsをグループ化する方法です。 3つまたは4つのUILabelsがあり、その上にスタイル(font、backgroundColour、opacityなど)を適用するとします。 IBOutletCollectionを使用すると、これを行うのは簡単になります。まず、IBOutletCollectionを定義する必要があります。

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

(ミックスコレクションがある場合はidを入れることができますが、括弧内に入れているタイプに注意してください)

InterfaceBuilderでIBoutletsを接続し、それを繰り返します。

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

これがあなたの理解に役立つことを願っています:

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

58
Rui Peres

XIBをハッキングしているところです。

ここで使用中のアウトレットコレクションを見ることができます:

コントロールは、以下に格納されている複数のジェスチャレコグナイザを持つことができます。

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

IBを開く

UITextViewをIBビューにドラッグします。

Pinch GestureRecognizerをテキストビューにドラッグします。

オブジェクトのツリーでそれぞれをクリックし、接続インスペクターを開きます。

単一のアウトレットではなく、コレクションが追加されていることがわかります。

OUTLET COLLECTIONS

gestureRecognizers ------> Pinch Gesture
0
brian.clear

XCode Interface Builderを使用して、IBOutletを作成/ IBOutletコレクションに接続します。その結果、.hファイルに次のコードが含まれます。

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

.mファイルでは、forループを使用して繰り返し、フォントサイズや色などの目的の機能を取得できます。

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];
}
0