Swift
JohnsonSwift
I am from Anhui dajun, a professional programmer, I like use C C++,Swift,C# java,OC ,Python,PHP,js,and so on develop any software, like Web ,Computer App,Phone App,and so on, i also like play computer games;or play basketball,let's enjoy it;
展开
-
Swift5仿某宝购物车
Swift5仿某宝购物车原创 2022-01-30 13:31:51 · 1058 阅读 · 1 评论 -
Swift5 利用元祖 返回多个 类型的函数,取出
Swift5 利用元祖 返回多个 类型的函数,取出案例class func getCurrentLrcM(currentTime: TimeInterval,lrcMs:[QQLrcModel]) -> (row: Int,lrcM: QQLrcModel?){ var index = 0 for lrcM in lrcMs { if currentTime > lrcM.beginTime && currentTime原创 2022-01-28 20:26:33 · 434 阅读 · 0 评论 -
Swift5关于取余或取模的方法truncatingRemainder
Swift5关于取余或取模的方法truncatingRemainderSwift5 不支持 % 来取模(取余)使用 truncatingRemainder// 取模let sec = Int(timeInteral.truncatingRemainder(dividingBy: 60))注意取出来的是 float 类型,需要自己 进行类型转换。...原创 2022-01-28 08:58:59 · 1333 阅读 · 0 评论 -
swift5 字符串格式化保留2 位,缺0自动补0
swift5 字符串格式化保留2 位,缺0自动补0String(format: “%02d:%02d”, min,sec)本质就是OC的东西原创 2022-01-28 08:56:27 · 2427 阅读 · 0 评论 -
ios15 通过Segue跳转页面不全问题解决方案
ios15 通过Segue跳转页面不全问题解决方案给 segue起个名字 list2Detail//跳转self.performSegue(withIdentifier: “list2Detail”, sender: nil)当前viewController 跳转到目标控制器,然后 一般点show ,然后起个segue名字。但是 执行的 VC 并不是全屏,研究一番,点击 右边属性面板。选中 Segue 属性右边找到Presentation 找到 Full Screen ,其实这跟纯代码设置没啥原创 2022-01-27 23:08:48 · 450 阅读 · 0 评论 -
swift5 实现录音App
swift5 实现录音App//// ViewController.swift// AudioRecoardDemo//// Created by lujun on 2022/1/25.//import UIKitimport AudioToolboximport AVFoundationclass ViewController: UIViewController, AVAudioPlayerDelegate { /// 播放音频 var player: AV原创 2022-01-26 10:14:08 · 1196 阅读 · 0 评论 -
Swift5 结合Alamofire框架 和Codable协议写我的活动页面
Swift5 结合Alamofire框架 和Codable协议写我的活动页面数据是来自springboot提供的json数据。import Foundationstruct MyActivityListModel:Codable { var activityList:[DetailModel] = []}struct DetailModel:Codable { var address:String var displayType: String var endT原创 2022-01-25 10:01:00 · 741 阅读 · 0 评论 -
swift5 实现购物App
swift5 实现购物App原创 2022-01-25 09:35:22 · 672 阅读 · 0 评论 -
swift5 PKHUD的使用
swift5 PKHUD的使用pod ‘PKHUD’. 导入 框架 HUD.flash(.label("错误"),delay: 2)HUD.flash(.labeledSuccess(title: "", subtitle: "评论成功"), onView: view, delay: 2, completion: nil)原创 2022-01-25 09:10:13 · 751 阅读 · 0 评论 -
swift5主线程延迟操作的几种写法
swift5主线程延迟操作的几种写法swift写法 @objc func delayExecution(){ debugPrint("delayExecution") } func test1(){ // 1.perform(必须在主线程中执行) self.perform(#selector(delayExecution), with: nil, afterDelay: 3) // 取消 NSObject.c原创 2021-12-13 19:59:23 · 2344 阅读 · 0 评论 -
Swift5之网易云音乐页面搭建
Swift5之网易云音乐页面搭建纯swift5项目搭建https://gitee.com/johnson__save_admin/netease-music-swift/原创 2021-12-10 00:02:50 · 2868 阅读 · 1 评论 -
IOS动态库打包导入工程报错Library not loaded: @rpath/SwiftFrame.framework/SwiftFrame
IOS15动态库打包导入工程报错Library not loaded: @rpath/SwiftFrame.framework/SwiftFrame环境:IOS 15.0Xcode 13.0最近打包动态库老是报错 rpath/SwiftFrame.framework在项目里面 phases,点击+号 New Copy Files Phase ,把动态库 添加上去,项目就可以起飞吧...原创 2021-11-26 20:15:48 · 508 阅读 · 0 评论 -
swift5保存图片到系统的相机胶卷里面
swift5保存图片首先在info.plist 添加如下属性,访问相机胶卷的权限。NSPhotoLibraryAddUsageDescription一 从 collection 拿到celllet cell = collectionView1.visibleCells.first as! PhotoBrowserCellguard let image = cell.imageView1.image else {return} UIImageWriteToSavedPhotosAlbu原创 2021-11-25 23:14:47 · 1138 阅读 · 0 评论 -
swift5的代理的使用
swift5的代理的使用swift5 的代理是ios重难点。例如 UICollectionViewCell 想往 UICollectionViewController 传值或者是通知一下一个值。怎么去做。首先定义一个协议:protocol PhotoBrowserViewCellDelegate: NSObjectProtocol{func imageViewClick()}继承NSObjectProtocol,一。书写一个方法,没有方法体 functuon Body, 相当于java 的i原创 2021-11-25 22:49:45 · 879 阅读 · 0 评论 -
swift5自定义构造函数和自定义变量报required init?(coder: NSCoder) { fatalError(“init(coder:) has not bee错问题
swift5自定义构造函数和自定义变量报required init全局类下 UIViewController,通过构造方法传递属性值。还有一种方法,通过属性监听去给给viewController 传值什么是构造函数,在java里面,跟类名一样的函数,叫做构造函数,有无参构造和有参构造,那么在swift5中,如何自定义构造函数。构造函数是初始化成员变量的。init(indexPath: NSIndexPath, picURLs: [NSURL]){super.init(nibName: nil,原创 2021-11-25 17:02:21 · 692 阅读 · 0 评论 -
IOS的Alamofire5.4高版本上传图片
IOS的Alamofire5.4高版本上传图片Alamofire框架上传图片是比较冷门的知识。经常性报错,也找不到相关解释,或者其他低版本的写法,令开发者很是头疼。低版本的写法,在5.4.4API已经过期了。不在适用。我只用高版本的软件和最新软件。其他一概不用的。那么5.4.4版本的Alamofire高版本的图片上传如何去写。我用springBoot后端去接受图片的上传的。swift是最新语法。把传入进来的图片转化成二进制。具体url是否传参,以及成功后是否搞一个回调函数通知调用者。自己完善一下。通过点原创 2021-11-24 22:11:21 · 1374 阅读 · 0 评论 -
swift5表情键盘项目封装
swift5表情键盘项目封装地址https://gitee.com/johnson__save_admin/emoji_-key-board原创 2021-11-24 19:41:23 · 222 阅读 · 0 评论 -
swift5导航栏标题文字属性设置
swift5导航栏标题文字属性设置在oc里面想必大家都非常熟悉,那么在swift5里面,怎么设置导航栏标题的文字呢.先看oc。self.navigationItem.title = @"首页"; self.navigationController.navigationBar.titleTextAttributes = @{ NSForegroundColorAttributeName: UIColor.redColor, NSFontAttributeName:原创 2021-11-24 18:09:17 · 1017 阅读 · 0 评论 -
IOS图文混排基础
IOS图文混排基础class ViewController: UIViewController { @IBOutlet weak var demoLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // demoLabel.text = "大码哥IT教育"// demoLabel.textColor = UIColor.blue原创 2021-11-24 17:41:20 · 444 阅读 · 0 评论 -
IOS之UIToolBar约束报错
IOS之UIToolBar约束报错.使用纯代码创建UIToolBar,并已经设置toolBar1.translatesAutoresizingMaskIntoConstraints = false自动约束为false,还是报错。探究一番,得到的结果是要设置frame的高度。否则报错。初始化toolBar的frame,给它设置一个frame,约束报错即可解决。toolBar1.frame = CGRect(x: 0, y: 0, width: kScreenW, height: 44)...原创 2021-11-24 12:40:41 · 293 阅读 · 0 评论 -
IOS表情的打印
IOS表情的打印oc- (void)viewDidLoad { [super viewDidLoad]; NSString *str = @"0x1f603"; unsigned unicodeInt = 0; [[NSScanner scannerWithString:str] scanHexInt:&unicodeInt]; char chars[4]; int len = 4; chars[0] = (unicodeInt >&原创 2021-11-23 22:09:15 · 313 阅读 · 0 评论 -
swift5的SnipKit框架使用
swift5的SnipKit框架使用swfit的SnipKit跟OC的Masonry类似,都是给控件添加约束的加入 pod ‘SnapKit’, ‘~> 5.0.1’。最新版本5.0.1。网上其他写法都是过期的API写法,没有参考意义,或者报一大堆警告,令开发者很是头疼。2个Label距离最顶部显示。实践表明,必须设置frame的宽高,XY设置成0,让SnapKit约束自动归位。且宽高被约束好,大小正好是文字的大小。案例代码。必须导入框架 import SnapKitimport UIK原创 2021-11-23 16:56:44 · 986 阅读 · 0 评论 -
IOS仿微信朋友圈的日期处理
IOS仿微信朋友圈的日期处理经常刷微信朋友圈的朋友,都能看到该条信息是什么发送的,有刚刚,有昨天,有xxxx年xx月xx日发送的,今天我们就探究微信内部是怎么样去做的。对于传入的时间,一般是从服务器请求回来的json的时间数据要进行格式化,然后跟当前时间比较,当小于60秒,则显示刚刚,我们采用分类的思想封装工具类。对NSDate进行封装。采用全局类方法对外暴露一个方法,可以仿照 我现在书写的格式进行改造返回的具体字符串。oc的写法亦是如此。Sat Nov 20 15:14:20 +0800 2021原创 2021-11-20 20:40:06 · 2103 阅读 · 1 评论 -
IOS网络框架的Alamofire5.4高版本网络工具封装
IOS网络框架的Alamofire5.4高版本网络工具封装网上一般的封装都是过期的swift写法,或者低版本的Alamofire,照搬照抄只会报错一大堆。令开发者很是头疼。特此公开最新的网络工具封装。我只用最新版本的软件,其他版本一概不用pod 加入pod 'Alamofire', '~> 5.4.4'写法:// Created by lujun on 2021/11/20.//import UIKitimport Alamofireenum MethodType {原创 2021-11-20 10:17:55 · 788 阅读 · 0 评论 -
swift5.给系统类添加便利构造函数
swift5.给系统类添加便利构造函数便利构造函数是swift的重点。swift并没有分类,所谓分类就是给系统类做扩展。我们使用便利构造函数去给系统类进行拓展。我们创建类的对象,直接使用构造函数去初始化赋值。不需要通过全局类方法去调用。使得代码更加优雅简洁。给UIButton 添加便利构造函数convenience init(imageName: String, bgImageName: String){ self.init() setImage原创 2021-11-19 12:25:32 · 403 阅读 · 0 评论 -
IOS之storyBoard的storyboard_reference的使用
IOS之storyBoard的storyboard_reference的使用选择navgationController 和 TableViewController,选择 docker上面的editor,选择storyBoard Reference,重新命名一下,存到项目目录下面即可。原创 2021-11-19 10:42:51 · 122 阅读 · 0 评论 -
swift5.5异常的处理的三种的方式
swift5.5异常的处理的三种的方式override func viewDidLoad() { super.viewDidLoad() method1() method2() method3() } func method3(){ //方式3 太危险,直接强制解包 不推荐 let pattern = "abc" let regex = try! NSRegularExpre原创 2021-11-19 10:18:04 · 214 阅读 · 0 评论 -
swift5优秀打印函数自定义
swift5优秀打印函数自定义func LJLog<T>(message: T,file: String = #file,funcName: String=#function,lineNum: Int=#line){ let file2 = ( file as NSString).lastPathComponent debugPrint("\(file2):[\(funcName)](\(lineNum))-\(message)")}放在 AppDelegate.swif原创 2021-11-19 09:00:17 · 400 阅读 · 0 评论 -
IOS之SplitViewController的使用
IOS之SplitViewController的使用在iPad开发中常使用SplitViewController,例如iPad的设置,就是典型的SplitViewController。新建一个项目,直接把Main的ViewController删掉。拖一个SplitView Controller。把下边的viewController改成TableViewController,连线。我们最终做一个菜谱。git地址https://gitee.com/johnson__save_admin/spl原创 2021-11-16 13:37:19 · 826 阅读 · 0 评论 -
IOS Swift5.5的通知写法
IOS Swift5.5的通知写法新建一个Common.swift 文件,把默认的全部删掉。里面书写通知的名字:import UIKitlet kWBAppearanceTintColor: UIColor = UIColor.orangeextension NSNotification.Name { static let ktypeChangeNotification = NSNotification.Name("typeChangeNotification")}仿照上面写,见名知原创 2021-11-16 12:20:05 · 1292 阅读 · 0 评论 -
关于swift5以上的SnapKit框架的入门教程使用
关于swift的SnapKit框架的入门教程使用苹果在swift框架下面,一般使用snapKit进行纯代码的自动布局。常见的布局方式一种是纯代码,还有VFL,此语法较难,或者相对来说比较麻烦。还有storyboard故事板进行布局,还有xib添加约束进行布局,snapKit是纯代码进行自动布局,为了适用多种设备,就需要自动布局。例如iPhone6s和iPhone13设备,就需要进行调试,我选取的是iPhone13进行调试。也是这个月刚刚发布的新产品。cocoaPods添加的版本。pod 'SnapKi原创 2021-10-26 15:55:42 · 1488 阅读 · 0 评论 -
IOS swift项目的单例模式.swift5以后的单例模式
IOS swift项目的单例模式.swift5以后的单例模式不能继承NSObject第一种写法,最简单class SoundTools{ static let sharedInstance = SoundTools() private init() { }第2种写法class SoundTools{ //提供全局访问点 class var sharedInstance2: SoundTools { struct Static {原创 2021-10-06 00:00:42 · 490 阅读 · 0 评论 -
swift5以上版本的代理的实现,详细教你书写代理
swift5以上版本的代理的实现,详细教你书写代理swift 代理与OC代理同等重要。非常重要,必须要学好,搞懂什么是代理,就是自己的事情不去做,让别人去做。交给别人去做我这里有个view.swift继承自UIView,我view里面使用纯代码创建2个button,现在点击按钮,让XXXTableController.swift 文件去执行我代理方法的,即view的事件传递到Controller里面,首先点击view.swift文件,要声明代理,代理的具体方法不要实现,相当于java的接口,inte原创 2021-10-05 22:58:13 · 654 阅读 · 0 评论 -
Swift5版本以上#selector报错解决
Swift5版本以上#selector报错解决最近swift 版本变化较大,如果对一个按钮添加一个事件在oc想必都非常熟练,那么在swift怎么去定义函数,以及函数传参呢 let btn = UIButton() btn.tag = 2 btn.addTarget(self, action: #selector(buttonClick(button:)), for: .touchUpInside) @objc func buttonClick(button: UIButton) {原创 2021-10-03 08:48:41 · 476 阅读 · 0 评论 -
Swift5版本以上自定义回调函数报错
Swift5版本以上自定义回调函数报错最新swift版本要求在回调函数前面加入@escaping 关键字,以前不写,默认加入,现在不行了假设一个类写一个全局类方法,第一步写一个class ,代表类方法class func test(){}先把结构写好2.写参数class func test(urlStr: String, dict: [String : NSObject], finished: () -> () ) {}3.先把结构写好,先把回调函数的结构写好,不然你记不得怎么写,花原创 2021-10-03 08:41:09 · 375 阅读 · 0 评论 -
Swift5使用KVC报setValue:forUndefinedKey
Swift5使用KVC报setValue:forUndefinedKey当网络请求的json属性对于自定义模型的时候,要重写setValue forUndefinedKey方法,在swift5 版本使用self.setValuesForKeys(dict) 去进行字典赋值属性,即KVC。 override func setValue(_ value: Any?, forUndefinedKey key: String) { }一般重写这个方法即可。如果不放心,可以再重写 overr原创 2021-10-03 08:30:50 · 647 阅读 · 0 评论 -
IOS15之Swift5.5的KVC报错以及JSON转字典转模型
IOS15之Swift5.5的KVC报错以及JSON转字典转模型最近IOS15升级,导致报错,尝试半天,才解决错误import UIKitimport Alamofireenum MethodType { case GET case POST}class NetworkTools: NSObject { // 写一个类方法,直接通过点语法调用 class func getParametesDemo(type: MethodType, urlStr: String,原创 2021-10-03 08:03:42 · 513 阅读 · 0 评论 -
IOS15之swift的Alamofire 5.4框架的网络封装
IOS15之swift的Alamofire 5.4框架的网络封装此Alamofire 版本较高,是基于IOS15 和最新的 Alamofire 5.4.4 版本,截止我发稿的时候,最新版本,网上其他框架的版本较低,api早就淘汰了,或者其他写法,(对回调函数所使用到的关键字@escaping)要重点掌握后台我采用Java 的springBoot进行封装测试的。涉及swift基础语法,cocoaPods的使用,swift的闭包,回调,swift5.5语法新特性,单例模式的使用等,类方法的定义,Alamo原创 2021-10-02 17:05:25 · 1623 阅读 · 1 评论 -
IOS之Swift的CoreData入门使用案例
IOS之Swift的CoreData入门使用案例CoreData和SQLite3类似,用来把数据存在磁盘上的。可以随时读写。创建项目钩上当APP退出的时候,数据消失。使用CoreData,退出App,重启或 退出App,点击进去App,数据仍然显示核心代码在这;//// DJTableViewController.swift// HitList//// Created by 鲁军 on 2021/4/7.//import UIKitimport CoreDatac原创 2021-04-07 19:44:19 · 406 阅读 · 0 评论 -
cocoaPod集成9大环境以及报错项目问题
cocoaPod集成9大环境以及报错项目问题由于以前api函数过期,导致cocoapods必须安装最新的,我这里选取9大常用框架。支持ios14.3以及 xcode12版本pod ‘Alamofire’, ‘~> 5.4.2’pod ‘Kingfisher’, ‘~> 6.2.1’pod ‘SwiftyJSON’, ‘~> 5.0.1’pod ‘HandyJSON’, ‘~> 5.0.3-beta’pod ‘IBAnimatable’, ‘~> 6.1.0’pod原创 2021-04-04 18:35:28 · 243 阅读 · 0 评论