2011-03-09 64 views
0

我想創建電話撥號器效果,那麼我該如何做出這種效果?是否有任何API可用於此?我設置的圖像是在圖像視圖中,圖像是在圓形狀中。現在我想要觸摸並拖動圖像,如果我拖動單個圖像,它會將所有圖像移動到特定路徑。請看我的屏幕截圖。如何在iPhone中創建手機撥號器效果?

enter image description here

請幫我一把。

謝謝!

+0

a rotary phone-dialer api?這些天人們期望的方式太多了。 ----看看真實的手機。他們不會沿着路徑移動洞。他們將帶有孔的光盤放入其中。我會嘗試將所有圖像放入一個視圖並旋轉該視圖。 –

回答

0
  1. 創建視圖(視圖A)並將背景顏色設置爲透明。

  2. 添加圖像意見子視圖來查看

  3. 覆蓋在視圖A下面的方法:

    - (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event { 
    
    // Only return YES if the touch is in one of the subviews 
    // - we dont care about touches that are just in this view 
    
    for (UIView* view in self.subviews) { 
    
        // We need to convert the point into the recievers co-ordinate system 
        // (as per the documentation on 'pointInside:withEvent') 
    
        CGPoint convertedPoint = [self convertPoint:point toView:view]; 
    
        if ([view pointInside:convertedPoint withEvent:event]) { 
         return YES; 
        } 
    } 
    return NO; 
    } 
    
  4. 響應觸摸移動,以改變視圖A的中心點如果您需要旋轉一點,你將不得不使用一些trig/maths。

0

您可以使用UIPanGestureRecognizer檢測您的父圖像視圖上的平移/拖動。然後,只需應用一個CGAffineTransform,根據用戶的手指位置旋轉該視圖。

// Calculate the rotation you want 
CGFloat radians = degreesToRadians(position*totalRotation); 
[dialerView setTransform:CGAffineTransformMakeRotation(radians)]; 

您需要弄清楚如何計算位置和totalRotation。