Кнопка ObjC выпущена Touch Up снаружи

У меня есть кнопка, при удерживании которой происходит движение, при отпускании оно должно останавливаться. Я знаю, что могу написать два метода, один для запуска и один для остановки движения, мне было интересно, смогу ли я в одном методе обнаружить оба метода на основе Touch Up Outside и Touch Up Inside.

Если подкрасьте снаружи, сделайте это, если внутри, сделайте это.

-(IBAction) startMotion: (id)sender {
    NSLog(@"Forward or back button is being pressed.");
    UIButton * buttonName = (UIButton *) sender;
        NSLog(@"Button Name:  %@",  buttonName.currentTitle);
}

person rd42    schedule 12.11.2010    source источник


Ответы (2)


Да, вы можете написать один метод и связать IBAction "touchUpInside" и "touchUpOutside" с одной и той же функцией-членом IBAction - через Interface Builder.

Единственным недостатком было бы то, что вы не могли бы определить, было ли это касание внутри или снаружи, когда оно было вызвано. (Похоже, это не имеет для вас значения.)

Если последнее было проблемой, вы могли бы поочередно реализовать независимые методы touchUpInside и touchUpOutside, которые, в свою очередь, вызывают тот же самый метод — третий пользовательский метод, в который вы можете передать флаг «внутри» или «вне». из соответствующего обработчика IBAction.

person Brad    schedule 12.11.2010

Я не думаю, что Touch Up Outside не даст вам той функциональности, которую вы ищете. Человек должен будет вывести палец за пределы кнопки, а затем поднять и убрать палец. Почему бы не использовать касание, чтобы начать движение, и касание внутри, чтобы остановить его?

person Roy Ruiz    schedule 12.11.2010