0

我UIViews與加入到他們UIGestureRecognizers一個3x3的網格,設置像這樣:CGAffineTransformScale不結垢手勢區域

State1

它的工作方式是,上輕敲方擴大其使用CGAffineTransformScale 2倍並覆蓋在其他廣場上。問題在於,由於某種原因,觸摸區域保持與1.0尺度相同的尺寸。

我添加使用

CGRect squareFrame = CGRectMake(1 + squareSpacing + ((squareDimension + squareSpacing) * i), topMargin, squareDimension, squareDimension); 
     SquareView *square = [[SquareView alloc] initWithFrame:squareFrame]; 
     [square setPosition:i]; 
     square.layer.zPosition = 0; 
     [self.view addSubview:square]; 
     [squaresArray addObject:square]; 

的平方數的平方在他們的init添加手勢識別:

fingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)]; 
    [self addGestureRecognizer:fingerTap]; 

分流的功能執行以下操作:

[UIView animateWithDuration:1.0 
         delay:0.0 
    usingSpringWithDamping:0.8 
     initialSpringVelocity:10.0 
        options:UIViewAnimationOptionCurveEaseOut 
       animations:^{ 
        CGAffineTransform transform = self.transform; 
        self.transform = CGAffineTransformScale(transform, 2.0, 2.0); 
       } 
       completion:nil]; 

State2

我用紅色標出了觸摸區域。我試圖玩zPosition,但我不知道該怎麼做才能使它工作,我被卡住了。我希望能夠點擊放大的方塊任何地方爲它關閉,但我被限制在紅色區域。

在此先感謝。

編輯:對不起,圖片是如此之大。已添加代碼。

  • 史蒂芬
+0

代碼將是比一些圖像無限多的信息。 – CodaFi

+0

@CodaFi對不起,添加它。 –

回答

1

你可能會試圖使擴大的UIView你父視圖的前面,這樣你的點擊事件沒有任何重疊的視角捕捉:

[parentView bringSubviewToFront:tappedView]; 
+0

完美!謝謝。正是我需要的。 –