【发布时间】:2015-09-08 11:07:13
【问题描述】:
首先,我很惊讶在这里或 Google 上都找不到这个问题。似乎其他人也可能需要此功能。所以如果它毕竟是重复的,对不起,我搜索了高低。
我的故事板中有一个具有以下结构的应用程序:
-> 根标签栏控制器 -> (对于每个标签)SplitView Controller -> Navigation Controller -> TableView Controller -> Detail View Controller
我想设置一个在整个应用程序中都相同的背景图像。 我的想法是在我的 App Delegate 中为 Root Tab 控制器设置该图像:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
方法。 :
var imageView = UIImageView(frame: self.window!.frame)
var image = UIImage(named: "bg.png")!
imageView.image = image
self.window!.rootViewController!.view.backgroundColor = UIColor.clearColor()
self.window!.rootViewController!.view.addSubview(imageView)
self.window!.rootViewController!.view.sendSubviewToBack(imageView)
首先是设置它的好地方吗?
如果我有最后一行代码,我现在遇到的问题:
self.window!.rootViewController!.view.sendSubviewToBack(imageView)
我看不到图片。 (对于我的 UITableView 和 UITableViewCells 我将 opaque 设置为 false 并将 BackGroundColor 设置为 ClearColor)
如果我删除最后一行,图像就在那里,但在所有内容之上,我看不到任何内容(没有标签栏,没有拆分视图......)
请帮助我解决此问题或提供更好的方法。 TIA
【问题讨论】:
-
问题是您不知道选项卡、拆分和导航控制器将哪些其他视图添加到层次结构中。您可能需要达到导航控制器级别
-
这意味着两件事:我需要为每个导航控制器实现这个(atm 有 2 个,但是当我添加一个选项卡时,我将再次需要这样做)。我通过创建自定义类 NavControllerWithBackground 解决了这个问题,并且正在使用该类。在 ViewDidLoad 我添加了 var imageView... 代码。但问题仍然(几乎)相同:最后一行图像不可见,没有最后一行图像位于所有内容之上(标签栏除外)。
-
我的目的是创建一个 UIViewController 子类,在其中设置背景图像并让你的所有控制器都继承自它。
-
@Bisca:这对于 iPad 上的 UISplitViewControllers 来说并不好,因为 TableViewController(主)和 DetailViewController 都会有那个图像。我想要整个屏幕的 1 张图片
标签: ios image swift background