【问题标题】:How to make the view background transparent only if the view is used inside an iOS 7 popover?仅当在 iOS 7 弹出框内使用视图时,如何使视图背景透明?
【发布时间】:2023-03-28 10:34:01
【问题描述】:

iOS 7 HIG 说:

(默认情况下,弹出窗口中的表格视图、导航栏和工具栏 使用透明背景让弹出框的模糊显示 通过。)

为我的自定义视图复制表格视图的这种行为(iOS 6 上的白色背景和/或不在弹出窗口中时,在 iOS 7 弹出窗口中时透明)的推荐方法是什么?

【问题讨论】:

    标签: ios uitableview ios7 uipopovercontroller


    【解决方案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 不知何故知道它从哪里呈现。我想知道魔法是如何运作的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多