自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SoftwareDoger的博客

参天大树生千年,只做向日第一叶,一点一点汲知识,暖人暖心开先河!

  • 博客(53)
  • 收藏
  • 关注

原创 Xib添加scrollView再添加subView约束不报错的两种方式

Xib 添加scrollView报错问题解决

2023-09-15 10:48:18 458

原创 Swift --棒棒糖5 --Xcode文件目录Bundle中有大量的图片加载时内存暴涨的解决方式

//Xcode Bundle文件中大量的图片: 比如 var images:[String] = ["LoginHintOverlays1.0-NoButtons-1","LoginHintOverlays1.0-NoButtons-2","LoginHintOverlays1.0-NoButtons-3","LoginHintOverlays1.0-NoButtons-4","LoginHintOverlays1.0-NoButtons-5","LoginHintOverlays1.0-NoBut

2020-05-15 18:36:05 300

原创 Swift --棒棒糖4--判断当前的控制器是怎么来的

extension UIViewController { var isModal: Bool { let presentingIsModal = presentingViewController != nil let presentingIsNavigation = navigationController?.presentingViewController?.presentedViewController == navigationC...

2020-05-09 15:11:20 419

原创 Swift --棒棒糖3--数据库增删改查操作(GRDB)

//创建两个表1.class axStudent: Record { var studentID: Int64 = 0 var studentName: String = "" var studentAge: Double = 0 var studentSex: Int = 0 var studentAddress: String = ""}2...

2020-05-03 11:17:55 845

原创 Swift --棒棒糖2--filter,map,compactMap,reduce,sort高阶函数

端到端

2020-05-01 14:05:18 247

原创 Swift --棒棒糖1--判断字符串中有没有元素

//如下方法: 说白了其实就是判断 string. func hasElement(str: String?, excludeNull: Bool = false) -> Bool { if let string = str { if excludeNull { if !string.isEmpty &&...

2020-04-30 16:48:35 327 1

原创 Swift--enum枚举,协议CaseIterable

功能用法:1.常规:enum PrinterType : String , CaseIterable { case receipt = "Receipt" case kitchen = "Kitchen" case bar = "Bar" case packing = "Packing" case label = "Label"}print...

2019-08-08 15:32:17 1714

原创 Swift -- UIControl的分类

不管是OC还是Swift,一个继承自UIControl的类比如UIButton,注册一个点击事件的时候都会这么做:Btn.addTarget............说实话,已经用烦了!封装一个// MARK: - UIControl 添加 闭包/// UIControl 的 Target-Action 转换为闭包的‘辅助类’class ClosureSleeve { let...

2019-08-07 14:47:00 621

原创 iOS系统版本较高同时Xcode版本较低真机调试遇到的问题

iOS系统版本较高同时Xcode版本较低真机调试容易出现如下报错:1.真机调试提示Please reconnect the device问题解决2.Please check the connection to the device, and review all errors in the Devices and Simulators window这两个报错的出现,重启手机可能有用,但最重要的是要:到https://github.com/filsv/iPhoneOSDeviceSupport找

2022-04-20 13:27:19 4369

原创 Swift 模糊效果局部挖空

Swift 模糊效果局部挖空

2022-04-19 17:34:01 646

原创 修改状态栏背景色

//MARK:- 修改状态栏背景色var statusBarUIView: UIView? { if #available(iOS 13.0, *) { let tag = 123456 let keyWindow = UIApplication.shared.connectedScenes .map({$0 as? UIWindowScene}) .compactMap({$0}) .firs

2021-06-04 15:38:15 231

原创 Swift -- 将本地生成的UIImage进行持久化保存(存到文件中fileManager.createFile)

//在相册或者拍照的代理方法中struct ImageSource { var img: UIImage var title: String init(img: UIImage, title: String) { self.img = img self.title = title }} var familyImgsSource:[ImageSource] = [] { didSet{

2020-07-23 15:47:20 2153

原创 Swift -- UICollectionViewLayout自定义,满足你不同的布局需要

项目中需要用到UICollectionView的地方非常多,这样我们常常要写满足不同布局需要的cell的布局方式,比如在一个BaseVC中,我们设置代理数据源什么的,然后在ViewDidLoad中开始写一堆的布局代码,这样显的VC中的代码很乱,我们也没有一个清晰的认识,我常会单独创建一个继承自UICollectionViewLayout的类FamilyFlowLayout,代码如下:import UIKitclass FamilyFlowLayout: UICollectionViewLa...

2020-06-13 11:30:46 1810

原创 Swift -- Chirp第三方播放本地音频文件

//在项目中避免不了要在恰当的位置适时的播放一小段段或者极其简短的声音,比如点击按钮时的卡卡声,error出现弹出view时的警告声,点击拍照的咔嚓声,电量不足的噔噔声,QQ来信时的滴滴声,等等,不胜枚举,用法列举如下:1.github上面搜索Swift对应的Chirp,然后进行pod操作,或者直接把源文件拖到工程中也行,很小的一个第三方2.创建一个Sound类,代码如下:import UIKitenum SoundType: String { case click = "click.

2020-06-10 16:05:00 487

原创 Swift -- AVPlayerViewController播放本地视频并且通知重复播放

import AVKit override func viewDidLoad() { super.viewDidLoad() self.addPlayerView() } func addPlayerView(){ guard let url = Bundle.main.url(forResource: "720p", withExtension: "mov") else { return

2020-06-05 16:41:02 1851

原创 Swift -- delay(封装一个延迟执行的方法)

//在iOS开发中 有许多工作需要延迟执行,应用场景会有很多,我就不一一举例了// MARK: - 延时函数typealias Task = (_ cancel : Bool) -> ()@discardableResultfunc delay(_ time:TimeInterval, task:@escaping () -> ()) -> Task? { func dispatch_later(_ block:@escaping () -> ()) {

2020-05-30 17:08:51 1225

原创 Swift -- 屏幕的分辨率,图片的像素,像素是否固定大小,屏幕的尺寸,来一一解惑

送给小白:像素: 图片的属性,我们可以看到公交上面滚动播放字体的屏幕,你细看的话其实是一颗颗LED的灯组成的,一个像素就是一个LED灯泡,一张图片其实就是很多个不同颜色的点组成的,这个店就是像素分辨率: 设备屏幕的属性,iPhone6的分辨率是1334 x 750, 指的就是iPhone横向有750像素,纵向有1334像素屏幕的尺寸:经常说iPhone6是4.7英寸的屏幕,XR是6.1英...

2020-04-26 14:24:40 1192

原创 Swift-- UIViewController中使用到的willRotate父类方法

//UIViewController的willRotate父类方法使用//以前工作中没有遇到这个需求,所以一直没了解这个父类的方法,用到后其实很简单//在你的项目中可能会遇到翻转设备使其竖屏出现新的view,横屏对应的view都Hide override func willRotate(to toInterfaceOrientation: UIInterfaceOrientation,du...

2020-04-25 13:44:21 274

转载 Swift [weak self]与 [unown self] 的区别

当我们知道两个对象的生命周期并不相关,那么我们必须使用 [weak self]。相反,非强引用对象拥有和强引用对象同样或者更长的生命周期的话,则应该使用 [unown self]。例如,ViewControler 对它的 SubView 的引用可以使用 unowned。因为 ViewControler 的生命周期一定比对它的 SubView 长。...

2020-04-16 10:33:17 512

原创 Swift --text的长短决定 Label等控件的宽高

这是一个常用的需求:比如微信未读消息的那个显示个数的小图标,个位十位百位下的数字当然有不同的长度,这样label也应该长度随内容而变。比如label高不变长可变:label.text = "123"label.frame.size.width = label.text?.boundingRect(with: CGSize(width: CGFloat(MAXFLOAT), height: ...

2020-03-14 16:11:49 524

转载 Swift -- Lazy懒加载的用法以及何时用

如下:Swift中的Lazy关键字用法,细读品他苹果加这样的关键字的作用//如下面的例子,不用Lazy修饰代码的执行顺序是从上到下的, 也就是说不管我用不用,它都创建,他都执行let data = 1...3let result = data.map { (i) -> Int in print("正在执行\(i)") return i * 2}print("准备访...

2020-02-21 10:37:30 885

原创 Swift -- 正则表达式过滤邮箱地址格式

对于一个邮箱格式的输入是否满足需求,需要用正则表达式进行筛选过滤规范,其应用很广泛,咱们只讲邮箱格式的规范://判断字符串是不是有效的 let emailString = "u@qq.com" if emailString.isValidateEmail(){ print("success ????????龙") }else{ ...

2019-12-18 14:04:15 965

原创 Swift--创建数据库文件以及创建表和字段

//在沙盒Document文件夹下,创建sqlit文件--- 下一步就是要在里面添加各种表了 func setupLiveDataBase(){ let doucumentPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! as NS...

2019-12-16 11:10:25 385

原创 Swift --获取沙盒各文件夹路径

1.//document文件夹 let documentPath1 = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first! as NSString print("documentDirectory", documentPath1)...

2019-12-11 15:21:26 1486

原创 Swift -- 字符串首字母大写以及全部大小写转换

//首字母大写 let temSting1 = "wo xiao wo ku" print(temSting1.capitalized) Wo Xiao Wo Ku //全部转小写 let temSting2 = "COMpletion" print(temSting2...

2019-12-05 16:23:27 4384

原创 使用WKWebView播放视频时当url不正确时的处理

最近项目中有一个需求:使用webView播放优酷视频,通过调接口获取后台设置的url,url再转成优酷识别的JS代码,但是后台设置的url可能不对,或者无效,这时候会报出一个参数无效的系统弹窗,想要将这个系统弹窗换成我们自定义的AlertView。尝试的方法有好多,获取视频第一帧等等,最后都不行,因为你不是一个播放器,而是打开的是内嵌的播放器,不是直接的视频源文件,无法获取视频的具体信息,也无...

2019-12-03 17:31:49 819

转载 SwiftUI学习资料

SwiftUI虽然语言和语法很熟悉,但是一些新加的控件还是很陌生,那么怎么取学习和了解呢。目前官网有SwiftUI Tutorials:https://developer.apple.com/tutorials/swiftui/creating-and-combining-views文档地址:https://developer.apple.com/documentation/swiftui/...

2019-11-09 13:37:47 251

原创 Swift--将网络请求获取到的数据转成模型

经常在开发中将字典,JSON或者其他的数据类型转成模型,那模型的作用是什么呢? 为什么不直接将获取到的数据赋值给对应的显示控件呢?答案是: 模型(专门存放数据的对象)其实就是一个用来存储和读取你网络请求获取到的数据的容器,用来存放和读取你的数据,数据模型,专门用来存放数据的对象,用它来表示数据会更加专业模型设置数据和取出数据都是通过它的属性,属性名如果写错了,编译器会马上报错,因此,保证了数据...

2019-11-01 17:35:45 793

原创 Swift--基于Alamofire网络请求 Networkable的具体实践

在DeviceNumberRequestable.swift文件中:import Foundation//请求结果enum DeviceNumberRequestResult<T>{ case success<T> case failure(Error)}//模型遵循Codable协议struct DeviceNumberRequestM...

2019-10-29 15:51:10 317

原创 Swift--XIB 嵌套不显示的问题

进行xib作业的时候常常会出现xib嵌套不显示的问题,如下面草图所示: MyView是Xib拖出来的,SubView也同样是,MyView中的左侧Class:输入SubView,在SubView中左侧输入SubView,这符合一贯的思路,但是运行起来不会显示你的SubView,这就出现了嵌套Xib不显示的问题,解决思路:1.在SubView.Xib文件中,右侧导航栏Class:不填,保持原来的类...

2019-10-29 10:42:38 663

原创 Swift--UIBezierPath 绘制图形

func drawBack() { //// Color Declarations let strokeColor = color let bezierPath = UIBezierPath() bezierPath.move(to: CGPoint(x: frame.minX + 25 + 12 , y: fra...

2019-10-28 13:25:06 755

原创 Swift--UIView设置任意某个角为圆角

//封装的方法: func setCornersRadius(_ view: UIView!, radius: CGFloat, roundingCorners: UIRectCorner) { if view == nil { return } let maskPath = UIBezierPath(roundedR...

2019-10-25 09:21:36 2246

原创 Swift -- UICollectionView中cell的排版布局

override func layoutSubviews() { super.layoutSubviews() if let layout = rightCollectionView.collectionViewLayout as? UICollectionViewFlowLayout { layout.minimumLineSpac...

2019-10-21 16:31:26 788

原创 Swift --subViews中拿到你想要的控件

if let conBtn = rightCollectionView?.subviews{ for btn in conBtn{ if btn is UIButton{ setCornerRadius([btn], radius: 35) } ...

2019-10-21 10:18:18 867

原创 Swift--新手引导页之记录是否是第一次进来

在swift项目开发中有这样的需求:在你的应用第一次进来的时候显示新手引导图片,其他时候再进来不会显示(除非删除重装),这样就需要在你对应的页面viewDidLoad方法中判断该控制器是否是第一次进来,进而决定引导页的显示与否,代码如下,仅做自己记录或其他人学习。class func isFirstInit(viewName: String) -> Bool { let h...

2019-10-18 11:18:32 506

原创 Swift--UICollectionViewCell复用出现的问题

综述:在这样的界面中,点击左侧tableViewCell对应的右侧collectionViewCell里面数据进行显示,蓝色是可用可点击的cell,红色是不可点击的cell,具体cell显示红色是根据网络请求得到使用过的DeviceNumber数组,就显示这些红色的cell,服务器返回的DeviceNumber在某一时间段内保持不变,这些在此不表。问题描述:每次点击某一tableviewCel...

2019-10-16 09:30:54 1385

原创 UIButton的一个extension扩展

extension UIButton {func centerVertically(padding: CGFloat = 6.0) { guard let imageViewSize = self.imageView?.frame.size, let titleLabelSize = self.titleLabel?.frame.size else { ...

2019-10-15 11:10:54 385

原创 Swift--Alamofire 网络请求(不需要传入参数的类型)

func getAllDeviceNumFromCloudSQL(complete:@escaping ([String])->Void) { let headers = CUTicket() guard let storeID = PalauDefaults.storeID.value else { return } let url = B...

2019-10-14 10:11:33 557

转载 观察者模式,从公众号群发说起

每个人应该都订阅了不少微信公众号,那你有没有注意到微信公众号的消息呢?你订阅的公众号号主每发布一篇文章,你都会主动的接收到文章的推送,并不需要你点开每个订阅的公众号一一查看有没有更新,是不是觉得有点意思?感兴趣?那就接着往下看吧,因为接下来我们要模拟公众号群发的场景。要模拟公众号群发,首先需要简单的了解一下公众号的特点,对于公众号的特点,我总结了以下三点:每个公众号会有多名订阅者,公众号跟订阅...

2019-09-21 10:13:45 152

原创 Swift--Alamofire 网络请求返回来的数据进行处理

看一段代码 // 通过刷卡时保存的卡的信息得到对应此Order相关的信息 class func fromCardInfoGetOrderInfos(cardLast:String, beginDate:String, endDate:String, complete: @escaping ([OrderInfoList])->Void) { if let va...

2019-09-06 17:14:22 2138

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除