【问题标题】:Adding background to entire UISplitViewController为整个 UISplitViewController 添加背景
【发布时间】:2011-08-17 14:43:15
【问题描述】:

嘿,我想向我的 UISplitViewController 添加一个背景图像,该图像跨越整个 iPad 屏幕,并且在我的主视图和详细视图下都可见。

我已经尝试了很多不同的方法,但都没有成功。如果我将它放在 splitView.view 中,它只会覆盖在两个子视图控制器中的所有内容之上。如果我把它放在主视图控制器中,我可以在那里正常做事(在它上面放置一个 UITableView 等),但它会覆盖细节视图控制器中的所有内容。我尝试的另一条路线是将我的背景图像放在它自己的视图控制器中,将整个拆分视图控制器放入该视图控制器中,但无论我设置拆分视图控制器的 alpha 值,背景仍然是黑色的。

如果有人能指点我让它工作,那就太棒了,谢谢!

【问题讨论】:

    标签: ios image view background uisplitviewcontroller


    【解决方案1】:

    搞定了!

    首先跟随 Apple 在此处以编程方式设置 UISplitViewController 的示例:http://developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/iPadControllers/iPadControllers.html

    然后在将VC添加到窗口之前添加此行:

    splitVC.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.jpg"]];
    

    【讨论】:

    • 您的主视图和详细视图的大小是全屏还是您必须稍微调整它们的大小才能显示背景?我试过了,我还看不到背景图片。
    • 有什么方法可以让背景图片保持静态(所以当表格视图滚动时它不会移动)?另外,想知道有什么技巧/黑客可以以某种方式将 ImageView 放在主视图中,这样我们就可以完全控制背景图像的显示方式!
    • 在 iOS 8 中似乎不起作用,并且该链接已损坏。如果您为 iOS 8 解决此问题,我会 +1 。此解决方案可能会给新开发人员带来问题。
    【解决方案2】:

    我刚遇到这个问题,我使用的解决方案是将背景图像放在拆分视图控制器视图中,然后将其发送到后面。然后它出现在所有其他内容的后面,只要主视图和详细视图具有清晰的背景颜色,您就可以看到背景图像。

    因此,如果 self 是 UISplitViewController 的子类,而 imgView 是包含背景图像的 UIImageView,那么我只需在 viewDidLoad() 的 end 处添加它(确保它是在我分配之后视图控制器到拆分视图控制器)

        self.view.addSubview(imgView)
        self.view.sendSubviewToBack(imgView)
    

    【讨论】:

    • 当我尝试这样做时,我的详细视图控制器在选择时不可见。你知道为什么会这样吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-05
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    相关资源
    最近更新 更多