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;

当我将图像视图放入数组时,它不会存储坐标吗?

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

它不是board1 = brds[1]; brds 也不是 C 数组,而是 NSArray。利用board1 = [brds objectAtIndex:1];

于 2013-02-28T15:28:41.133 回答