从可变数组中获取图像视图

时间:2013-02-28 15:21:44

标签: iphone ios objective-c

我将所有电路板UIImageViews存储到一个可变数组中,'brds'(相交的那些)

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

后来我在brds中找到了正确的电路板,例如索引1:然后我尝试使用那个兄弟的位置[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放入数组时,它是否存储坐标?

3 个答案:

答案 0 :(得分:1)

您应该使用NSLog检查您的阵列是否实际包含数据。它可能是null,你必须在添加对象之前初始化它。

答案 1 :(得分: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;

答案 2 :(得分:-1)

不是board1 = brds[1]; brds不是一个C阵列,它是一个NSArray。使用board1 = [brds objectAtIndex:1];