Swift5.x使用纯代码创建NavigationTab控制器设置启动图Wb第1部分

前言
1 使用纯代码创建NavigationTab控制器必须会,也可使用storyboard拖控件,没有代码创建灵活
2 学习swift基础必须学习oc,个人建议,否则有点难。学好oc再来学swift里面有很多相似之处。swift不需要导入头文件。数据类型非常严谨。否则报错。定义类是全局的思想。依托强大的xcode可以提示你的报错,有自动解决方法。如果函数过期,xcode也提示用什么替代了。非常不错。抛开 2019年发布的swiftUI不说,那个跟前端框架React思想差不多,报错不要紧,尽量尝试,慢慢解决。
from Shanghai Johnson

这是基于swift 5语法写的
先把启动图弄好

1 main.storyboard删掉,红框的Main删掉

2.在资源目录下新建一个启动图片 把启动图片拖进去

3 删除 info.plist 删除场景那个配置文件

4 选中项目属性 找到launch 把那个置空 务必置空,否则报错

5.找到编译下的 搜索 asset 把图片名称填进去

6找到SceneDelegate.swift文件 书写成员变量

var window: UIWindow?   //加?是为了可选类型,可选项 ,其语法跟go类似 变量类型在后面

7 。删除其他无关重写函数 保留application函数


//  AppDelegate.swift
//  SinaWeiBo
//  Created by 鲁军 on 2021/3/13.
import UIKit
@main
class AppDelegate: UIResponder, UIApplicationDelegate {var window: UIWindow?func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {window = UIWindow(frame: UIScreen.main.bounds)window?.backgroundColor = UIColor.white
//        window?.backgroundColor = UIColor.graywindow?.rootViewController = MainViewController()window?.makeKeyAndVisible()return true}
}

8.新建一个MainViewController.swift文件 继承自 UITabBarController
HomeTableViewController 。MessageTableViewController,DiscoverTableViewController,ProfileTableViewController 类似。


import UIKit
// MARK:- 程序入口
class MainViewController: UITabBarController {override func viewDidLoad() {super.viewDidLoad()self.addChildViewControllers()setupComposedButton()}override func viewWillAppear(_ animated: Bool) {//将撰写按钮弄到最前面//会创建tabBar中的所有控件器对应的按钮tabBar.bringSubviewToFront(composedButton)}//MARK 懒加载控件private lazy var composedButton: UIButton = { //闭包//自定义样式的按钮let button = UIButton()button.setImage(UIImage(named: "tabbar_compose_icon_add"), for: .normal)button.setImage(UIImage(named: "tabbar_compose_icon_add_highlighted"), for: .highlighted)button.setBackgroundImage(UIImage(named: "tabbar_compose_button"), for: .normal)button.setBackgroundImage(UIImage(named: "tabbar_compose_button_highlighted"), for: .highlighted)button.sizeToFit()return button}()
}
//MARK: -设置界面
extension MainViewController {//设置撰写按钮private func setupComposedButton(){tabBar.addSubview(composedButton)// 2 调整按钮位置let count = children.countprint("children 的数量是  \(count)")//让按钮宽一点点  能够解决手指触摸容错的问题// let w = tabBar.bounds.width / CGFloat(count) - 1// composedButton.frame = CGRectInset(tabBar.bounds,2*w,0)
//         CGRect.insetBy()composedButton.frame = CGRect(x: 128, y: 2, width: composedButton.frame.width, height: composedButton.frame.height)}private func addChildViewControllers(){// 设置tintColor -图片渲染颜色tabBar.tintColor = UIColor.orangeself.addChildViewController(vc: HomeTableViewController(), title: "首页", imageName: "tabbar_home")self.addChildViewController(vc: MessageTableViewController(), title: "消息", imageName: "tabbar_message_center")addChild(UIViewController())self.addChildViewController(vc: DiscoverTableViewController(), title: "发现", imageName: "tabbar_discover")self.addChildViewController(vc: ProfileTableViewController(), title: "我", imageName: "tabbar_profile")}private func addChildViewController(vc: UIViewController,title: String,imageName: String){vc.title = titlevc.tabBarItem.image = UIImage(named: imageName)let nav = UINavigationController(rootViewController: vc)addChild(nav)}private func addChildViewController(){let vc = HomeTableViewController()vc.title = "首页"vc.tabBarItem.image = UIImage(named: "tabbar_home")let nav = UINavigationController(rootViewController: vc)addChild(nav)}
}

运行项目,应该可以看到了效果了,项目资源在我的主页里面。

Swift5.x使用纯代码创建NavigationTab控制器设置启动图Wb第1部分相关推荐

  1. ios14.3开发之使用纯代码创建UITabbarController

    ios14.3开发之使用纯代码创建UITabbarController 这里我们IOS版本14.3.Xcode 版本选择的是.12.3版本:来自apple最新的xcode版本,该版本支持最新的swif ...

  2. 【Swift Mac开发】纯代码创建NSViewController

    对于习惯了纯代码iOS开发的人来说,刚接触Mac端开发时,是非常不友好的,网上所有的教程都是通过Xib或StoryBoard的方式创建NSViewController,而且苹果文档也是鼓励用Xib的开 ...

  3. IOS基础之使用UICollectionView纯代码创建

    IOS基础之使用UICollectionView纯代码创建 资料来自2016-5-12某站. 有一定的参考意义, 涉及plist 转字典模型,UICollectionView使用纯代码加载到View里 ...

  4. IOS14.3开发之使用纯代码创建UIButton以及弹框的使用

    IOS14.3开发之使用纯代码创建UIButton以及弹框的使用 源码在这 // // ViewController.m // testDemo1 // // Created by 鲁军 on 202 ...

  5. iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比

    iOS回顾笔记( 01 )--  XIB和纯代码创建应用的对比 很多时候我们工作很久突然闲下来的时候,是不是也感到无聊过?这就是我现在的生活,不过闲一段时间也挺好,可以好好回顾一下自己以前学习iOS路 ...

  6. Swift5.x的UITableView纯代码演练

    Swift5.x的UITableView纯代码演练 // // ViewController.swift // 1-UITableView演练 // Created by 鲁军 on 2021/3/1 ...

  7. iOS 使用纯代码或xib创建圆角视图

    尊重原创 转自:http://www.jianshu.com/p/80f1fd3f63a0 引言: 在我们日常开发中, 很多中情况下我们需要设置UIView或者UIImageView的圆角以及边框等, ...

  8. IOS15最标准的纯代码搭建项目

    IOS15最标准的纯代码搭建项目 环境 xCode 13 ios 15 如今手机产品更新日新月异.ios既要适配iPhone12,13这样的刘海机型,还要适配iphone8-5s这样的老机型.如何使用 ...

  9. storyboard搭建项目_简单谈谈ios程序界面实现的三种方式(代码创建,xib和storyboard)...

    一丶前言 实现ios界面总的来说,有三种方式,传统的是纯代码创建与xib创建,近年来,苹果官网一直推荐用storyboard管理项目界面,最新的xcode 创建的project也是默认为storybo ...

最新文章

  1. 1.8 欠拟合和过拟合-机器学习笔记-斯坦福吴恩达教授
  2. tcp 四次挥手_TCP三次握手和四次挥手
  3. 直播地址公布|第八届“数学、计算机与生命科学交叉研究” 青年学者论坛--特别云论坛...
  4. 钥匙计数之一(HDU-1483)
  5. 无法打开、创建WEB项目,VS2003有寄生性?
  6. 今晚直播丨国产数据库入门:openGauss数据库的基本管理和SQL语句入门
  7. 小学计算机教育实习教案,小学信息技术教师资格证面试教案模板:《漂亮的剪贴画》...
  8. python线程池如何调度,python线程池控制
  9. 已知两点坐标求水平距离_知道两个点的坐标X,Y,如何计算出两点间的距离以及角度,公式是什么...
  10. Android-深色模式篇
  11. 使用Java实现多个文件压缩打包
  12. macmini性能测试软件,Mac mini
  13. 京东 ChubaoFS 分布式文件系统分析
  14. python上传钉钉媒体文件_python 上传钉钉图片
  15. 树梅派硬件学习_xbox手柄驱动
  16. android gms认证之run host test,Android GMS认证项总结
  17. 转:怎么判断自己在不在一家好公司?
  18. STL常用——acwing——yxc
  19. 英文登录QQ账号 一个有趣的小知识
  20. Node.js中的egg入门、egg路由、egg控制器、egg服务、egg中间件

热门文章

  1. python绘制立体扇形_Python实现PS滤镜特效之扇形变换效果示例
  2. java httpclient post 上传文件_httpclient通过post multipart/form-data 上传文件
  3. java 学生信息的增删改查_学生信息的增删改查(java)
  4. lambda表达式_Lambda表达式详解
  5. 一根网线有这么多“花样”,你知道吗?
  6. 最受欢迎的男友职业排行榜 Top10 ,程序员排第 3
  7. 从工作的角度看 CV/NLP/推荐系统选哪个?
  8. 30天自制操作系统 pdf_30天自制操作系统:第四天:系统界面绘制
  9. spark sql合并小文件_如何比较Hive,Spark,Impala和Presto?
  10. php跨域资源共享,CORS 跨域资源共享