UIBarButtonItem 中的 UISlider 影响动画行为

Posted

技术标签:

【中文标题】UIBarButtonItem 中的 UISlider 影响动画行为【英文标题】:UISlider in UIBarButtonItem impacts animation behavior 【发布时间】:2009-11-20 15:30:26 【问题描述】:

在 IB 中,我设置了一个带有 UIToolBar 的视图 MyView 并在其上放置了一个 UISlider。 IB 自动将其嵌入到 UIBarButtonItem 中,并使用 UISlider 设置其视图。

我在带有动画的导航控制器中显示这个 MyView。

UIViewController *myVC = [[UIViewController alloc] initWithNibName:@"MyView" bundle:nil]; [self.navigationController pushViewController:myVC animated:YES]; [myVC release];

MyView 显示但没有动画。除此之外,一切正常,我可以根据需要使用 UISlider。 如果我从工具栏中删除 UISlider,或者如果我将 UISlider 放在视图本身而不是工具栏中,则 MyView 会显示动画。 我已经尝试使用 UIProgressView 进行相同的操作,并且效果很好(视图显示为动画)。似乎 UISlider 作为 UIBarButtonItem 的 customView 阻止了动画。 我还检查了任何可能的泄漏。

有什么想法吗? 谢谢 蛋挞。

【问题讨论】:

【参考方案1】:

我遇到了完全同样的问题。我会用 UISlider 打开视图,从那时起,我的应用程序中的视图转换都不会被动画化。

我最终用一个通用的 UIView 替换了 UIToolBar(听起来你已经成功地尝试过了)。您总是可以通过捕获空工具栏的图像并将其用作视图中的背景来伪造 UIToolBar 外观。

【讨论】:

感谢 Chris,实际上我只是将 UISlider 从 UIToolbar 中取出,将其放在应有的位置。然后,我将 UIToolbar 添加为 IB 视图中的第一个对象,并且它起作用了。显然,当 UISlider 嵌入到 UIToolbar 中时,就会出现问题。

以上是关于UIBarButtonItem 中的 UISlider 影响动画行为的主要内容,如果未能解决你的问题,请参考以下文章

导航栏中的 UIBarButtonItem 设置垂直位置偏移

导航栏中的 UIBarButtonItem 以编程方式?

UIBarButtonItem 中的 UISlider 影响动画行为

弹出窗口在 iOS 中的 UIBarButtonItem 操作上崩溃

UIBarButtonItem 中的 UIButton 未显示

Swift-5.0 中的 UIBarButtonItem 颜色设置