如何在iPhone中创建手机拨号器效果?

时间:2011-03-09 14:20:57

标签: iphone core-animation

我想创建手机拨号器效果,那么我该怎样才能产生这种效果?有没有可用的API?我已将图像设置在图像视图中,图像呈圆形。现在我想触摸并拖动图像,如果我拖动单个图像,它会将所有图像移动到特定路径。请看我的屏幕截图。

enter image description here

请帮帮我。

谢谢!

2 个答案:

答案 0 :(得分:0)

  1. 创建视图(视图A)并将背景颜色设置为透明。

  2. 将图像视图作为子视图添加到View A

  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.如果需要旋转一点,则必须使用一些触发/数学。

答案 1 :(得分:0)

您可以使用UIPanGestureRecognizer检测父图像视图上的平移/拖动。然后,只需应用CGAffineTransform即可根据用户的手指位置旋转该视图。

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

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