2013-05-07 1 views
-1

Я использую MHRotaryKnob, чтобы сделать ротационный набор как анимацию. Я использую его для создания старой телефонной клавиатуры.
image.
В настоящее время он просто показывает анимацию, когда я набираю пэд, который он только что вернулся с анимацией. даже первый круг от нижнего, даже не получив касания, и прикосновение работает там, где нет круга для набора. Ниже я отправляю код, который я использую.Вращающийся дозвон, подобный анимации

- (BOOL)beginTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
CGPoint point = [touch locationInView:self]; 

if (self.interactionStyle == MHRotaryKnobInteractionStyleRotating) 
{ 
    // If the touch is too close to the center, we can't calculate a decent 
    // angle and the knob becomes too jumpy. 
    if ([self squaredDistanceToCenter:point] < MinDistanceSquared) 
     return NO; 

    // Calculate starting angle between touch and center of control. 
    _angle = [self angleBetweenCenterAndPoint:point]; 
} 
else 
{ 
    _touchOrigin = point; 
    _angle = [self angleForValue:self.value]; 
} 

self.highlighted = YES; 
[self showHighlighedKnobImage]; 
_canReset = NO; 

return YES; 
} 

- (BOOL)handleTouch:(UITouch *)touch 
{ 
if (touch.tapCount > 1 && self.resetsToDefault && _canReset) 
{ 
    [self setValue:self.defaultValue animated:YES]; 
    return NO; 
} 

CGPoint point = [touch locationInView:self]; 

if (self.interactionStyle == MHRotaryKnobInteractionStyleRotating) 
{ 
    if ([self squaredDistanceToCenter:point] < MinDistanceSquared) 
     return NO; 

    // Calculate how much the angle has changed since the last event. 
    float newAngle = [self angleBetweenCenterAndPoint:point]; 
    float delta = newAngle - _angle; 
    _angle = newAngle; 

    // We don't want the knob to jump from minimum to maximum or vice versa 
    // so disallow huge changes. 
    if (fabsf(delta) > 45.0f) 
     return NO; 

    self.value += (self.maximumValue - self.minimumValue) * delta/(MaxAngle*2.0f); 

    // Note that the above is equivalent to: 
    //self.value += [self valueForAngle:newAngle] - [self valueForAngle:angle]; 
} 
else 
{ 
    self.value = [self valueForPosition:point]; 
} 

return YES; 
} 

- (BOOL)continueTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
if ([self handleTouch:touch] && self.continuous) 
    [self sendActionsForControlEvents:UIControlEventValueChanged]; 

return YES; 
} 

- (void)endTrackingWithTouch:(UITouch *)touch withEvent:(UIEvent *)event 
{ 
self.highlighted = NO; 
[self showNormalKnobImage]; 

// You can only reset the knob's position if you immediately stop dragging 
// the knob after double-tapping it, i.e. when tracking ends. 
_canReset = YES; 

[self handleTouch:touch]; 
[self sendActionsForControlEvents:UIControlEventValueChanged]; 

[self setValue:self.defaultValue animated:YES]; 


} 

Я пытаюсь добиться того, что круг выбран для набора, который может быть обнаружен и только круги могут использоваться для набора не вне кругов. Спасибо заранее, любая помощь приветствуется.

+0

нет кода? u не размещены ни одного кода –

+0

@AhmedZ. Я просто публикую сейчас, фактически забыл. –

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^