选择器视图不会出现在第一次尝试按钮单击时

时间:2011-12-23 14:27:15

标签: iphone uibutton uipickerview

我在按钮的最右边有一个按钮。

现在我有一个需要在点击按钮时显示的选择器视图。

使用以下代码正常工作:

-(IBAction)buttonPressed:(id)sender
{
[UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.3];
    CGAffineTransform transform = CGAffineTransformMakeTranslation(0, 200);
    monthPicker.transform = transform;
    [self.view addSubview:monthPicker];
    [UIView commitAnimations];  
}

但是当我看到没有选择器视图时,我搜索了将选择器视图隐藏起来并显示,我找到了一个解决方案.....将上面的代码添加到上面的方法中:

monthPicker.hidden = [monthPicker isHidden]?不:是的;

现在,当我点击按钮时,第一次尝试时没有显示选择器视图,但是从第二次尝试开始以及之后它的工作完美。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

monthPicker最初是否隐藏?当方法第一次调用时。如果不是 - 它隐藏,你看不到它。也许您需要在init方法中设置monthPicker.hidden=YES

答案 1 :(得分:1)

来自@Padavan的答案应该有效,但是如果你想要“在动画中”的淡化效果,隐藏的属性就不起作用了。您必须使用UIView.alpha属性。这是我的示例代码。

- (void) viewDidLoad {
       [super viewDidLoad];

       /////////////////////////////////////////////////
       //    ... Initialize your month picker here    //
       /////////////////////////////////////////////////

       monthPicker.alpha = 0;    
       [self.view addSubview:monthPicker];    
}

- (void)buttonPressed:(id)sender
{
    [UIView beginAnimations:nil context:nil];
    [UIView setAnimationDuration:0.3];
    CGAffineTransform transform = CGAffineTransformMakeTranslation(0, 200);
    monthPicker.transform = transform;
    monthPicker.alpha = monthPicker.alpha * (-1) + 1;
    [UIView commitAnimations];  
}