Вы можете зарегистрироваться на 2 события управления:
[yourButton addTarget:self action:@selector(doneButtonPressed) forControlEvents:UIControlEventTouchDown];
[yourButton addTarget:self action:@selector(doneButtonReleased) forControlEvents:UIControlEventTouchUpInside];
, а затем обрабатывать 2 метода:
- (void)doneButtonPressed {
// open a thread
while(someBOOL) {
//do something you want
}
}
- (void)doneButtonReleased {
// do something
someBOOL = NO;
}