Кнопка, которая отвечает на UIControlEventTouchUpInside и касается методов - PullRequest
0 голосов
/ 29 февраля 2012

Я создал кнопку:

button = [StretchableButton new];
[button addTarget:mainViewController action:@selector(addNumberFromButton:) forControlEvents:UIControlEventTouchUpInside];

Внутри класса StretchableButton у меня есть:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self.nextResponder touchesBegan:touches withEvent:event]; 
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {  
    [self.nextResponder touchesMoved:touches withEvent:event]; 
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {  
    [self.nextResponder touchesEnded:touches withEvent:event]; 
}

Методы касания вызываются, но button не реагирует на нажатия.

Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 29 февраля 2012

Добавить распознаватель жестов, пример кода:

    UIPanGestureRecognizer *gesturePan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(pan:)];
    gesturePan.maximumNumberOfTouches = 1;
    gesturePan.minimumNumberOfTouches = 1;
    gesturePan.delegate = self;
    [myButton addGestureRecognizer:gesturePan];
    [gesturePan release];

....

- (void)pan:(UIPanGestureRecognizer *)gesture
{
    if ((gesture.state == UIGestureRecognizerStateChanged) ||
        (gesture.state == UIGestureRecognizerStateEnded)) {


    CGPoint location = [gesture locationInView:[gesture.view superView]];
//add calculation view location on it superview
    [gesture.view superView] setCenter:newLocation];

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...