仅当在 iOS 7 弹出框内使用视图时,如何使视图背景透明?
Posted
技术标签:
【中文标题】仅当在 iOS 7 弹出框内使用视图时,如何使视图背景透明?【英文标题】:How to make the view background transparent only if the view is used inside an iOS 7 popover? 【发布时间】:2014-01-27 13:30:05 【问题描述】:ios 7 HIG 说:
(默认情况下,弹出窗口中的表格视图、导航栏和工具栏 使用透明背景让弹出框的模糊显示 通过。)
为我的自定义视图复制表格视图的这种行为(iOS 6 上的白色背景和/或不在弹出窗口中时,在 iOS 7 弹出窗口中时透明)的推荐方法是什么?
【问题讨论】:
【参考方案1】:它很简单,只需将 iOS 6 的 UITableView 背景设置为白色,iOS 7 使其清晰
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1)
// Load resources for iOS 6.1 or earlier
else if (isPresentedWithPopOver)
// Load resources for iOS 7 or later
else
// Load resources for iOS 7 or later
【讨论】:
问题是,当不在弹出窗口中时,它在 iOS 7 上也需要是白色的。 在这种情况下,当您在弹出窗口中呈现 UITableView 时,您必须管理另外一个变量 UITableView 会自动执行此操作。但是 Apple 的 table view 是如何在没有明确告知的情况下知道其内部等效于 isPresentedWithPopOver 的内容的呢?我想以同样的方式为我的自定义视图做这件事。 当您将表格呈现到弹出框时,您可以定义并设置这种变量来修改行为,因为 tableView 永远不知道它的呈现位置。 UITableView 不知何故知道它从哪里呈现。我想知道魔法是如何运作的。以上是关于仅当在 iOS 7 弹出框内使用视图时,如何使视图背景透明?的主要内容,如果未能解决你的问题,请参考以下文章