Uso siguiente método,
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
// put your logic here.
}
método anterior es de UIPickerViewDelegate, Si el usuario selecciona cualquier elemento utilizando pickerview, este método se activa automáticamente.
Espero que te ayude.
Editar:
creo que debería utilizar siguiente método para detectar - en la que el usuario es la dirección de desplazamiento?
- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSLog(@"scrolling to row is %@",[NSString stringWithFormat:@"index_%i",row]);
return [NSString stringWithFormat:@"index_%i",row];
}
cada vez que el usuario se desplaza hacia arriba/abajo por encima de método se activa automáticamente que es similar a UITableView
. Recuerde UIPickerView
está utilizando UIPickerTableView
que es privado, por lo que no podemos detectar el desplazamiento de la manera que desee tener.
Déjenme explicar la detección de la dirección en pickerview.
Ejemplo. Las filas visibles son index_4,index_5,index_6,index_7
. Ahora, si el usuario se desplaza hacia abajo index_8
se llamará. De manera similar, si el usuario está desplazándose hacia arriba, se llamará al index_3
.
Espero que este truco resuelva su problema. Aunque, déjame saber tu opinión sobre esto.
Ya conozco este método.el problema es que se dispara cuando el selector ha dejado de desplazarse, necesito una devolución de llamada mientras todavía está desplazándose. –
@AndrewPark - He actualizado la respuesta. –
gracias! No tenía idea de que se llamara titleForRow mientras se desplazaba. –