克隆中型iOS应用程序-第2部分
注意:自从我开始撰写本系列文章以来,Medium已使用名为“ Stories”的新功能更新了其应用。 本系列基于以前的版本,该版本具有非常相似的UI。
更改ViewController的背景色
在处理导航栏之前,让我们更改视图的背景。 我们可以在ViewController.swift中通过更改view.backgroundColor属性来实现。 通过在Medium应用程序上使用方便的吸管工具,我们看到背景色应对应于(249,249,249)的RGB。 Swift中内置的UIColor构造函数使我们以一种不直观的方式创建颜色,但是幸运的是LBTAComponents库使用更好的构造函数扩展了UIColor类。 因此,在将库导入文件后,我们可以添加viewDidLoad方法
view.backgroundColor = UIColor(r:249,g:249,b:249)
如果您现在运行该应用程序,我们现在将具有与真实应用程序相匹配的灰白色背景!
自定义导航栏
现在该处理导航栏了。 为了提高代码的可读性和结构性,我们将使用一个名为setupNavigationBar的新方法来封装本节中的所有代码,该方法将在viewDidLoad中调用。 我们可以先处理背景色,恰好是纯白色
navigationController?.navigationBar.backgroundColor = .white
如果运行该应用程序,您会发现颜色有些不对劲。 这实际上是因为默认情况下,该条设置为半透明。 我们可以简单地改变它
navigationController?.navigationBar.isTranslucent = false
现在背景看起来正确了。 现在,我们将“中”徽标放置在中间。 我在Github存储库中包含了徽标的切口。
让titleImageView = UIImageView(image:UIImage(named:“ medium_logo”))
titleImageView.frame = CGRect(x:0,y:0,宽度:34,高度:34)
titleImageView.contentMode = .scaleAspectFit
navigationItem.titleView = titleImageView
我们首先使用Medium徽标(位于资产文件夹中)创建一个UIImageView。 然后,我们通过首先将封装视图的框架设置为所需的大小,然后告诉图像缩放以适合该框架(通过.contentMode属性),来设置我们希望图像的大小。 最后,我们将titleView(已居中)设置为我们的自定义视图。
现在,让我们在右上角添加搜索按钮。 我们可以使用几乎所有的精确技术,而是创建一个自定义按钮并将其设置为导航栏的rightBarButtonItem。
让searchButton = UIButton(type:.system)
searchButton.setImage(UIImage(name:“ search”)?. withRenderingMode(.alwaysOriginal),用于:.normal)
searchButton.frame = CGRect(x:0,y:0,宽度:28,高度:28)
navigationItem.rightBarButtonItem = UIBarButtonItem(customView:searchButton)
如果我们现在运行该应用程序,我们会看到我们有一个很好的自定义导航栏
我们终于得到它了。 在下一部分中,我们将开始布局应用程序中的一些主要内容(提示:它将涉及很多UICollectionViews…),因此期待着。 希望您喜欢本教程。 请继续关注下一部分。