Swift5.x使用纯代码创建NavigationTab控制器设置启动图Wb第1部分
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部分相关推荐
- ios14.3开发之使用纯代码创建UITabbarController
ios14.3开发之使用纯代码创建UITabbarController 这里我们IOS版本14.3.Xcode 版本选择的是.12.3版本:来自apple最新的xcode版本,该版本支持最新的swif ...
- 【Swift Mac开发】纯代码创建NSViewController
对于习惯了纯代码iOS开发的人来说,刚接触Mac端开发时,是非常不友好的,网上所有的教程都是通过Xib或StoryBoard的方式创建NSViewController,而且苹果文档也是鼓励用Xib的开 ...
- IOS基础之使用UICollectionView纯代码创建
IOS基础之使用UICollectionView纯代码创建 资料来自2016-5-12某站. 有一定的参考意义, 涉及plist 转字典模型,UICollectionView使用纯代码加载到View里 ...
- IOS14.3开发之使用纯代码创建UIButton以及弹框的使用
IOS14.3开发之使用纯代码创建UIButton以及弹框的使用 源码在这 // // ViewController.m // testDemo1 // // Created by 鲁军 on 202 ...
- iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比
iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比 很多时候我们工作很久突然闲下来的时候,是不是也感到无聊过?这就是我现在的生活,不过闲一段时间也挺好,可以好好回顾一下自己以前学习iOS路 ...
- Swift5.x的UITableView纯代码演练
Swift5.x的UITableView纯代码演练 // // ViewController.swift // 1-UITableView演练 // Created by 鲁军 on 2021/3/1 ...
- iOS 使用纯代码或xib创建圆角视图
尊重原创 转自:http://www.jianshu.com/p/80f1fd3f63a0 引言: 在我们日常开发中, 很多中情况下我们需要设置UIView或者UIImageView的圆角以及边框等, ...
- IOS15最标准的纯代码搭建项目
IOS15最标准的纯代码搭建项目 环境 xCode 13 ios 15 如今手机产品更新日新月异.ios既要适配iPhone12,13这样的刘海机型,还要适配iphone8-5s这样的老机型.如何使用 ...
- storyboard搭建项目_简单谈谈ios程序界面实现的三种方式(代码创建,xib和storyboard)...
一丶前言 实现ios界面总的来说,有三种方式,传统的是纯代码创建与xib创建,近年来,苹果官网一直推荐用storyboard管理项目界面,最新的xcode 创建的project也是默认为storybo ...
最新文章
- 1.8 欠拟合和过拟合-机器学习笔记-斯坦福吴恩达教授
- tcp 四次挥手_TCP三次握手和四次挥手
- 直播地址公布|第八届“数学、计算机与生命科学交叉研究” 青年学者论坛--特别云论坛...
- 钥匙计数之一(HDU-1483)
- 无法打开、创建WEB项目,VS2003有寄生性?
- 今晚直播丨国产数据库入门:openGauss数据库的基本管理和SQL语句入门
- 小学计算机教育实习教案,小学信息技术教师资格证面试教案模板:《漂亮的剪贴画》...
- python线程池如何调度,python线程池控制
- 已知两点坐标求水平距离_知道两个点的坐标X,Y,如何计算出两点间的距离以及角度,公式是什么...
- Android-深色模式篇
- 使用Java实现多个文件压缩打包
- macmini性能测试软件,Mac mini
- 京东 ChubaoFS 分布式文件系统分析
- python上传钉钉媒体文件_python 上传钉钉图片
- 树梅派硬件学习_xbox手柄驱动
- android gms认证之run host test,Android GMS认证项总结
- 转:怎么判断自己在不在一家好公司?
- STL常用——acwing——yxc
- 英文登录QQ账号 一个有趣的小知识
- Node.js中的egg入门、egg路由、egg控制器、egg服务、egg中间件
热门文章
- python绘制立体扇形_Python实现PS滤镜特效之扇形变换效果示例
- java httpclient post 上传文件_httpclient通过post multipart/form-data 上传文件
- java 学生信息的增删改查_学生信息的增删改查(java)
- lambda表达式_Lambda表达式详解
- 一根网线有这么多“花样”,你知道吗?
- 最受欢迎的男友职业排行榜 Top10 ,程序员排第 3
- 从工作的角度看 CV/NLP/推荐系统选哪个?
- 30天自制操作系统 pdf_30天自制操作系统:第四天:系统界面绘制
- spark sql合并小文件_如何比较Hive,Spark,Impala和Presto?
- php跨域资源共享,CORS 跨域资源共享