ストーリーボードに 8 つの異なるオブジェクト (UIImageView と textview の 4 つのペア) を作成し、それぞれを IBOutletCollection に接続しましたが、これを行うと
for (UIView *element in infoElements) {
NSLog(@"frame: %@", NSStringFromCGRect(element.frame));
}
それは返す
frame: {{0, 0}, {0, 0}}
[infoElements count] は正しく 8 を返します
と
NSLog(@"element: %@", element);
オブジェクトを正しく返しますが、フレームのみが欠落しています。IBOutletCollection 内のすべてのオブジェクトの位置 (x と y) だけが必要です。
初期化は次のようになります。
@interface infoViewController : UIViewController{
IBOutletCollection(UIView) NSArray *infoElements;
}
@property (nonatomic, retain) IBOutletCollection(UIView) NSArray *infoElements;
私は何時間もグーグルで検索しましたが、誰も同じ問題を抱えていることがわかりませんでした(この未回答の質問を除く)ので、私は何か間違ったことをしているだけだと思います
編集
明確にするために、IBOutletCollection 内のオブジェクトは位置 0,0 ではなく、0,0 より大きいです。