【问题标题】:Remove UITabBar horizontal separator in iOS7在 iOS7 中移除 UITabBar 水平分隔符
【发布时间】:2014-04-17 23:36:17
【问题描述】:

我想删除 UITabBar 和屏幕其余部分之间的水平分隔线。我在问the same question as this guy,但已针对 iOS7 进行了更新。

设置我的 UITabBar 的背景图片并不能缓解问题,设置[UITabBar appearance] 对象的背景图片也不能解决问题。

这在 iOS7 中仍然可能吗?如果有,怎么做?

【问题讨论】:

标签: ios7 uitabbar user-experience


【解决方案1】:

您也可以使用以下代码隐藏阴影线:

[self.tabBar setValue:@(YES) forKeyPath:@"_hidesShadow"];

斯威夫特

self.tabBar.setValue(true, forKey: "_hidesShadow")

【讨论】:

  • 这是使用私有 API 吗?这会成为 App Store 拒绝的理由吗?
  • ^ 是的,它是一个私有的、未记录的 API,它的使用违反了 Apple 的条款。
【解决方案2】:

这个问题的答案与删除导航栏或工具栏的分隔符几乎相同。

官方来说,这只能通过将 shadowImage 设置为空图像来实现。然而,仔细观察documentation,我们看到:

要显示自定义阴影图像,必须使用自定义背景图像 也可以使用 backgroundImage 属性进行设置。如果默认 使用背景图像,则将使用默认的阴影图像 无论此属性的价值如何。

通过使用自定义背景图片,您将失去模糊的背景半透明效果。

分隔符是一个 UIImageView,它是标签栏的子视图。您可以在标签栏的层次结构中找到它并将其设置为隐藏。

【讨论】:

  • 感谢您的解释:)
【解决方案3】:

此方案使用透明图像,因此更可取。

斯威夫特

tabBar.shadowImage = UIImage()

Objective-C

tabBar.shadowImage = UIImage.new; 

【讨论】:

  • 当然在 Swift 中是:tabBar.shadowImage = UIImage();
猜你喜欢
  • 2010-10-05
  • 1970-01-01
  • 2012-07-02
  • 2013-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多