Swift - 创建自定义控件的正确方法

时间:2016-07-13 17:37:01

标签: ios swift cocoa-touch

实际上,我的UINavigationBar在整个应用程序中是相同的。为了不在每个视图中使用Xcode和storyboard创建相同的UINavigationBar,我想创建自己的UINavigationBar并在AppDelegate类中实现它。

我在应用程序功能中做的第一件事就是下一步:

mainWindow = storyBoard?.instantiateViewControllerWithIdentifier("MainCtrl") as! ViewController
let navigationItem = UINavigationItem()
navigationBar.barTintColor = UIColor.hexStringToUIColor(pEvenColor)
navigationBar.backgroundColor = UIColor.hexStringToUIColor(pEvenColor)
let searchBar = UISearchBar()
searchBar.sizeToFit()
navigationBar.items = [navigationItem]
mainWindow!.view.addSubview(navigationBar)

这很好用。 UINavigationbar在主视图中显示完美。

我觉得很晚才有可能减少代码并执行类似函数的操作,返回 UINavigationBar 并直接使用它:

mainWindow!.view.addSubview(someClass())

所以,我添加了一个名为 NavigationAppBar 的新Cocoa Touch类,它继承自UINavigationBar,并在 drawRect()函数中设置了所有相同的代码,但这并不是&#39工作。

然后在AppDelegate中:

var myNavBar = NavigationAppBar()
mainWindow!.view.addSubview(myNavBar)

这不起作用。显然,drawRect()方法从不调用,但我不知道做这样的事情的正确方法。我做错了什么,但是,在这种情况下,制作我自己的UINavigationBar(在类或其他东西中)并将其添加到任何视图的正确方法是什么?

对此粘贴所有代码表示遗憾和抱歉。

0 个答案:

没有答案