【问题标题】:How are toolbars hidden using animation如何使用动画隐藏工具栏
【发布时间】:2011-07-06 02:28:40
【问题描述】:

什么是可用于隐藏和显示工具栏的内置方法。指定动画的速率或速度?

【问题讨论】:

    标签: iphone


    【解决方案1】:

    查看this 问题,然后执行以下操作:

    [UIView animateWithDuration:2.0
                animations:^{ 
                    [self.navigationController setToolbarHidden:YES animated:YES];
                } 
                completion:^(BOOL finished){
                            // whatever
                }];
    

    【讨论】:

    • 很好,这里的 UIView 是什么?由 viewController 自行决定。
    • UIView 是developer.apple.com/library/ios/#documentation/uikit/reference/…。所以 animateWithDuration 是 UIView 类的静态方法。
    • 未来观众的注意事项:如果您在animateWithDuration 调用中使用工具栏自己的“animated:YES”方法,动画将使用标准时间。相反,替换 self.navigationController.toolbarHidden = YES; 并且动画将遵循您设置的持续时间(以及如果您使用该方法的选项)。
    【解决方案2】:

    工具栏只是一个视图——在控制器中添加一个 IBOutlet,然后使用 UIView 的(类方法)块动画方法,例如 animateWithDuration:delay:options:animations:completion:animateWithDuration:animations:。在动画块中,只需将 view.frame.size.origin.y 移动到不同的位置,或者将其不透明度设置为零。这些方法还允许您指定动画将发生的时间段。一旦完成(第一个方法中有一个委托回调),您就可以通过使用相同的方法更改主视图的 view.frame.size.origin.y 来要求主视图变得更高。

    【讨论】:

    • 太好了,我想在一定的时间范围内淡入淡出。如何在对象上调用此方法。对象是传入某处还是直接在对象上调用?
    • 该方法实际上是一个 UIView 类方法,它只是简单地告诉系统您要开始动画。有一个相应的方法实际上“结束”了动画块。在这两个方法的块中,您可以做任何您想做的事情,例如 myToolbar.alpha = 0.0;
    • 在该方法中,您可以设置动画的持续时间,在该持续时间结束时,工具栏的不透明度将为 0。请阅读文档了解详细信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    相关资源
    最近更新 更多