iPhone установил некоторую задержку - PullRequest
3 голосов
/ 07 марта 2011

HI;

В моем приложении для iPhone в UipickerView я могу программно перемещать значения выбора вверх или вниз

Чтобы добавить эффект анимации, такой как сборщик, перемещается только для этого


[picker selectRow:0 inComponent:0 animated:YES]; 

----    ---
//here I need Some time delay

[picker selectRow:3 inComponent:0 animated:YES]; 

Как я могу дать некоторую задержку между выполнением этих двух операторов

Пожалуйста, помогите и предложите

Спасибо

Ответы [ 4 ]

2 голосов
/ 07 марта 2011

Если вы хотите добавить задержку, вы можете использовать:

[NSThread sleepForTimeInterval:0.5];

Но это заблокирует ваше приложение, поэтому может быть лучше использовать таймер:

//In your method :
[picker selectRow:0 inComponent:0 animated:YES]; 

[NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(animatePickerTimer:) userInfo:picker repeats:NO];


//In the same class


-(void)animatePickerTimer:(NSTimer *)timer;
{
    [self performSelectorOnMainThread:@selector(animatePicker:) withObject:(UIPickerView *)timer.userInfo waitUntilDone:NO];

    //Not sure if this is required, since the timer does not repeat
    [timer invalidate];
}

-(void)animatePicker:(UIPickerView *)picker
{
[picker selectRow:3 inComponent:0 animated:YES];
}

Это должно быть выполнено в основном потоке, поскольку UIKit не является поточно-безопасным

0 голосов
/ 26 сентября 2011

как насчет этого:

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.1];
[UIView setAnimationDelay:0.0];
[UIView setAnimationCurve:UIViewAnimationCurveEaseOut];

[self.pickerView selectRow:row inComponent:0 animated:NO];

[UIView commitAnimations];

Это сработало для меня как шарм!

Я думал, что это никогда не сработает, но это довольно хорошо!

0 голосов
/ 07 марта 2011

Вы можете попробовать вызвать второй выбор после задержки через performSelector: withObject: afterDelay: метод

0 голосов
/ 07 марта 2011

Вы имеете в виду этот метод

- (void)selectRow:(NSInteger)row inComponent:(NSInteger)component animated:(BOOL)animated
...