0

すべてのボードUIImageViewsを可変配列「brds」(交差するもの)に格納しています

for (UIImageView *board in boardImg){
    if (CGRectIntersectsRect(image.frame, board.frame)) {
        [brds addObject:board];
    }
}

その後、私はbrdsで、たとえばインデックス1で適切なボードを見つけています。それから私はそのbrds[1]の位置で作業しようとします。なぜ正しいxとyが得られないのですか。それは常に私にx=0とy=0を与えると私は信じています。左上隅。

board1 = brds[1];

CGRect frame = image.frame;
frame.origin.x = board1.frame.origin.x;
frame.origin.y = board1.frame.origin.y;
image.frame = frame;

imageviewを配列に配置したときに座標が保存されませんか?

4

3 に答える 3

1

を使用して、配列に実際にデータが含まれているかどうかを確認する必要がありますNSLog。おそらくnullである可能性があり、オブジェクトを追加する前に初期化する必要があります。

于 2013-02-28T16:01:26.623 に答える
0

RGRectデータ構造は再利用可能なObjective-Cオブジェクトではありません。それはあなたがそれらを変更できないことを意味します。最も簡単な方法は、目的に合わせて新しいものを作成することです。

CGRect frame = CGRectMake(board1.frame.origin.x,
                          board1.frame.origin.y,
                          image.frame.size.width,
                          image.frame.size.height);

image.frame = frame;
于 2013-02-28T16:10:11.813 に答える
-1

brdsはCアレイではなくboard1 = brds[1]; 、NSArrayです。使用するboard1 = [brds objectAtIndex:1];

于 2013-02-28T15:28:41.133 に答える