如何在按下按钮后显示UIPickerView动画?

jay*_*ixz 7 iphone xcode uipickerview

我想在按下按钮后为我的UIPickerView设置动画.我已经将我的UIPickerView编码为隐藏在viewDidLoad上,而不是在按下按钮后隐藏,但它没有动画,就像ModalViewController默认动画一样.我只想让我的UIPickerView动画,就像ModalViewController默认动画一样.

我已经在网站和网络上进行了研究,但我似乎无法正确地进行研究.

这是我的代码:

#pragma mark - Picker View 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
    return 4;
}

- (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
    timersArray = [[NSMutableArray alloc] init];
    [timersArray addObject:@"No timer"];
    [timersArray addObject:@"15 seconds"];
    [timersArray addObject:@"30 seconds"];
    [timersArray addObject:@"60 seconds"];

    return [timersArray objectAtIndex:row];
}

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    if ([[timersArray objectAtIndex:row] isEqual:@"No timer"])
    {
        timerIndication.text = @"No timer selected";
        timersPickerView.hidden = YES;
        // Animation code to dismiss picker should go here
    }
    else if ([[timersArray objectAtIndex:row] isEqual:@"15 seconds"])
    {
        timerIndication.text = @"15 seconds selected";
        timersPickerView.hidden = YES;
        // Animation code to dismiss picker should go here
    }
    else if ([[timersArray objectAtIndex:row] isEqual:@"30 seconds"])
    {
        timerIndication.text = @"30 seconds selected";
        timersPickerView.hidden = YES;
        // Animation code to dismiss picker should go here
    }
    else if ([[timersArray objectAtIndex:row] isEqual:@"60 seconds"])
    {
        timerIndication.text = @"60 seconds selected";
        timersPickerView.hidden = YES;
        // Animation code to dismiss picker should go here
    }
}

#pragma mark - Delay method

// This is where Send button should be enabled
- (IBAction)selectTimer
{
    timersPickerView.hidden = NO;
    // Animation code to present picker view should go here
}
Run Code Online (Sandbox Code Playgroud)

Esh*_*nya 10

按下按钮后,您可以使用以下代码为选取器视图设置动画:

-(IBAction)button:(id)sender
{

   [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.6];
    CGAffineTransform transfrom = CGAffineTransformMakeTranslation(0, 200);
    PickerView.transform = transfrom;
    PickerView.alpha = PickerView.alpha * (-1) + 1;
    [UIView commitAnimations];

}
Run Code Online (Sandbox Code Playgroud)

不要忘记将以下代码添加到viewDidLoad方法中

PickerView.alpha = 0;    
[self.view addSubview:PickerView];
Run Code Online (Sandbox Code Playgroud)

它的作用是让选择器视图在第一次点击时从屏幕顶部掉落并使选择器视图消失,您只需再次单击该按钮.从下一次单击时,选择器视图就会出现并消失.希望它帮助和工作:)


Pau*_*l N 5

您可以创建一个viewcontroller,然后在控制器中添加UIPickerView,然后使用:

[self presentModalViewController:viewControllerWithPickerView animated:YES];

或者您可以添加UIPickerView而不是隐藏但是值大于屏幕的值,如480.0或更大,然后使用UIView动画将UIPickerView从该位置移动到屏幕上可见的位置,这将模拟ModalViewController动画.