自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

沐风

Enjoy life,Enjoy code

  • 博客(274)
  • 资源 (13)
  • 收藏
  • 关注

原创 Swift 网络请求工具类

Swift 网络请求工具类

2022-12-12 22:52:58 465

原创 Swift 换皮肤工具类

一个换肤工具类

2022-12-12 21:23:08 504

原创 数据结构与算法二:时间/空间复杂度(complexity)

从架构的角度来看,可扩展性是指更改 app 的难易程度。从数据库的角度来看,可伸缩性是指在数据库中保存或检索数据所需的时间快慢程度。对于算法,可扩展性是指随着输入大小的增加,算法在执行时间和内存使用方面的表现情况。当处理少量数据时,不好的算法(时间、空间代价昂贵)可能仍然让人感觉执行速度很快。然而,随着数据量的增加,昂贵的算法将会变得很糟糕。只是它会变得多糟糕呢?如何量化这个糟糕程度是我们需要了解的一项重要技能。对于少量数据,由于现代硬件的速度,即使是最昂贵的算法也可能看起来执行速度很快。然而,随着数据的增

2022-06-29 20:17:43 788

原创 数据结构与算法一:开篇

《Data Structures & Algorithms in Swift》 翻译工作正式开始了!今天是对这本书翻译的第一天,不要着急,接下来会慢慢把这本书翻译完,并发布在这一系列文章。欢迎大家多多关注、支持。因为花费了大量时间和精力,为了产出更好的服务,后面的部分章节选择性收费,望理解。想了解更多信息,可以关注一下我的个人技术公众号 – 「北之星」。为何要学习数据结构与算法?数据结构研究的是效率。假如给我们特定数量的数据,存储它或者操作它,以实现特定目标的最佳方式是什么呢?程序员们要经常使用各种集合类型

2022-06-29 20:16:33 616

原创 设计模式与软件原则 (一):SOLID 原则

设计模式与软件原则(Design Patterns and Software Principles)Gang of Four 在其书《设计模式:可重用面向对象软件的要素》(Elements of Reusable Object-Oriented Software)中,将设计模式大致分为三种类型:Creational - 处理实体创建,例如 Singleton 和 Factory 设计模式。Structural 结构 - 确定实现实体之间关系的简单方法。例如适配器设计模式。Behavioural 行

2022-02-19 20:12:00 212

原创 可拖拽 Bottom Sheet View Controller

当我们想弹出一个预览视图,bottom sheet modal view controller 非常实用。在 iOS 中,长按拖拽手势可以让 controller 上滑或者向下消失。实现原理是,通过监听拖拽事件,动态改变 view 之间的 auto layout 约束,并加上少许动画。下面看源码:第一个页面 ViewController.swift:import UIKitclass ViewController: UIViewController { // Defined.

2022-01-03 16:20:25 1623

原创 itextpdf convert html string to Pdf

一、导入依赖 <dependency> <groupId>com.itextpdf</groupId> <artifactId>html2pdf</artifactId> <version>4.0.0</version> </dependency> <!-- 中文字体-->

2021-11-04 15:43:14 180

原创 Filter 记录日志(Get Post 参数)

一、拦截器介绍拦截器(Interceptor)介绍拦截器(Interceptor)同 Filter 过滤器一样,它俩都是面向切面编程——AOP 的具体实现(AOP切面编程只是一种编程思想而已)。你可以使用 Interceptor 来执行某些任务,例如在 Controller 处理请求之前编写日志,添加或更新配置……在 Spring 中,当请求发送到 Controller 时,在被 Controller 处理之前,它必须经过 Interceptors(0或多个)。Spring Interceptor

2021-10-28 19:05:40 1335

原创 JavaScript 导出 HTML 到 PDF

首先说明,最佳方案是方式一。方式二也可以实现,但是有点麻烦,兼容性还不见得好。方式三,英文环境下挺好的,但不兼容中文。方式一:html2pdf使用 html2pdf.js 这个类库。具体使用方法可参考官方说明。项目地址:html2pdf源码下载地址:https://github.com/iJoeychang/convert_html_to_pdf_pro 方式二:jsPDF libraryjsPDF library 这种方式也可以实现导出 pdf,但是没有第一种方式好。使用方式引入类库

2021-07-14 14:37:04 557

原创 Proxifier 代理方式上网

Proxifier局域网内,一台电脑(A)不能上网,一台电脑(B)可以上网,怎样可以让不能上网的电脑上网呢?一个方法是,使用代理方式上网。即,在电脑(A)安装 Proxifier 并设置代理服务就可以将上网流量转发到电脑(B)了,这样电脑(A)实现上网。Proxifier 有 Windows 和 Mac 版。hfs下载地址:http://www.rejetto.com/hfs/?f=dl这是个 Http File Server 软件,运行该软件,可以将本地电脑设置为文件服务器,其它电脑通过 I

2021-07-14 13:19:48 1506

原创 iOS网络请求(Networking)及处理 Json

我们知道,空格不是 URL 中的有效字符, 除此,还有许多其它特殊字符也不是,例如 < 或 > 符号。因此对特殊字符必须进行转义,即 URL 编码。例如,我们可以将空格编码为 + 号或字符序列 %20。幸运的是,String 类现在已经可以进行这种编码了。 因此,我们只需添加一些代码就可以完成 URL 转码:func iTunesURL(searchText: String) -> URL {let encodedText = searchText.addingPercentEnc

2021-06-23 09:25:09 486

原创 iOS HUD (Heads Up Display) 旋转框

一、隐藏软键盘在 viewDidLoad() 添加 gestureRecognizer// Hide keyboardlet gestureRecognizer = UITapGestureRecognizer( target: self, action: #selector(hideKeyboard))gestureRecognizer.cancelsTouchesInView = falsetableView.addGestureRecognizer(gestureRecognize

2021-05-21 15:25:37 426 1

原创 editormd 上传图片问题解决

一、下载源码首先在 editormd 官方下载源码:删除 test、examples、docs 无用文件夹,重命名文件夹如下:二、移入源码到项目这里,我把 plugins 文件夹单独拎出来了。根据需要调整文件位置,只要 js css 文件在浏览器链接中可以访问到就行。在 IDEA 中右键 editormd、plugins 两个文件夹 ,Marked directory as Exclusion,这样两个文件夹下的文件就可以在浏览器访问了。三、thymeleaf 页面引用test.htm

2021-05-11 14:39:07 1506 2

原创 Swift 中的变量、常量、类型

a good building needs a good foundation变量、常量、类型变量是存储特定类型值的临时容器:var count: Intvar shouldRemind: Boolvar text: Stringvar list: [ChecklistItem]Double,与 Float 相似,但精度更高。比如可以使用 Doubles 来存储经纬度。Character,字符。String 就是字符的集合。UInt,Int 变体。U 代表无符号,表示数据类.

2021-05-01 16:31:16 217

原创 Checklists app demo 详解

本教程包含内容:Model-View-Controller 工作原理大标题(large titles)展示Segue 类型介绍代理(delegate)模式讲解可选类型 Optionals 讲解Weak 弱引用讲解沙盒机制讲解Codable 协议Plist files 序列化讲解UserDefaults 讲解Functional Programming 讲解本地通知 (local notifications) 讲解类方法 vs 实例方法讲解本教程 demo 下载地址本 dem

2021-04-26 21:10:42 185

原创 转换十六进制 color 为 UIColor

将格式为#symbol 的十六进制(eg. #ffe700ff )颜色转换为 UIColor,可以这样写,代码如下:extension UIColor { public convenience init?(hex: String) { let r, g, b, a: CGFloat if hex.hasPrefix("#") { let start = hex.index(hex.startIndex, offsetBy: 1)

2021-04-20 11:20:10 145

原创 Vue 页签 按钮

最终效果:源码:<template> <div> <div class="flex"> <div v-for="(item, index) in btns1" :key="index" @click="changeActive(item, index)"> <div class="btn1" :class="item.active? 'active1':''">{{item.name}}</div> &l

2021-04-01 14:28:49 202

翻译 SVG Assets in Xcode for Single Scale Images

Xcode 12 在 iOS,macOS 和 iPadOS 中引入了对可缩放矢量图形(SVG)图像的支持。在 Xcode 12 之前,我们只能通过 PDF assets 来使用 single scale resources 。这样无需使用@1x,@2x 和 @3x 后缀为每个比例生成单独的图像,因此可以节省我们的适配时间,还可以避免潜在的错误,例如意外生成大小为 @1x 的 @3x 资源。什么是 SVG(Scalable Vector Graphic)?可伸缩矢量图形,也称为 SVG,定义了可扩展标记

2021-01-21 14:16:37 326

翻译 Unused images and resources clean up in Xcode

由于项目中的迭代更新,可能会存在未使用的图像。因此,了解如何清理Xcode assets 非常有用。这里介绍一些可用于清理项目的工具:FengNiaoLSUnusedResources许多工具(例如Slender)曾经可以完成这项工作,但 Slender 已不再维护了。我们来看看现在可以使用的。Cleaning up unused images using FengNiaoFengNiao 是使用 Swift 编写的开源的命令行工具。可在Github上找到踏。我们可以通过 cloning 存

2021-01-21 14:15:57 181

原创 iOS zoom in zoom out 放大缩小图片

首先,在 viewDidLoad 添加设置:scrollView.delegate = selfscrollView.minimumZoomScale = 1.0scrollView.maximumZoomScale = 10.0实现方法一: override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() updateMinZoomScaleForSize(view.bounds.siz

2021-01-21 14:14:37 1416 2

原创 Swift 自定义 tableViewCell

创建类 CustomTableViewCell:import UIKitclass CustomTableViewCell: UITableViewCell { lazy var backView: UIView = { let view = UIView(frame: CGRect(x: 0, y:0, width: self.frame.width, height: 50)) return view }() lazy var se

2021-01-21 14:13:42 734 1

原创 docker 安装 nexus3

一、MacOS 安装 docker使用 Homebrew 来安装 Dockerbrew cask install docker二、docker 安装 nexus3查找 nexus3 镜像docker search nexus3控制台打印:拉取 nexus3 镜像docker pull docker.io/sonatype/nexus3控制台打印:查看镜像docker images控制台打印:changyou@Mac ~ % docker imagesREPOSITOR

2020-11-27 14:48:50 344

原创 MVC 简单示例:BMI-Calculator

项目结构这是一个小 demo,根据用户的体重和身高,计算出他们的身体质量指数(BMI,Body Mass Index),并给出健康建议:多饮食、少饮食、继续保持现状。ModelsBMI.swift 定义 BMI 基本属性import UIKitstruct BMI { let value: Float let advice: String let co...

2020-01-21 11:23:38 1273

原创 AutoLayout Stack View 实践笔记

水平方向,五个按钮为一组,设置属性如下:Alignment: Fill, Distribution: Fill Equally, Spacing: 1将 Label 和第1步中的所有5个水平 Stack view 放入一个垂直 Stack view 中-堆栈属性为:Alignment: Fill, Distribution: Fill Equally, Spacing: 1...

2020-01-13 19:13:14 990

原创 How to make an app

去年,Apple 宣布它们为开发者支付了265亿美元,而且这个数字仍以每年30%的速度增长。虽然这些钱大部分流入到像 Clash of Clans、Clash Royale 这样的大公司,但是仍然有大量独立开发者成功的案例。像 7 minute workout app 就是一个很好的例子。Stuart Hall 是一位独立开发者,他开发了 7 minute workout app 这款健身软件...

2020-01-04 15:58:34 1166

原创 idea gitlab 分支 pull、push 实践笔记

idea 功能太强大了,可惜自己使用时间还不久,它的很多功能还不会用。最近开始使用它自带插件进行 gitlab 源码管理,感觉极大的提升了开发效率。之前一直使用 SourceTree for Mac 进行 Java 代码管理,因为总是在不同分支进行切换,就把不同分支代码放进了不同的文件夹。SourceTree 体验不太好,一旦拉取代码有冲突,解决起来不是很方便。开发多个 jar 包,又需要不...

2019-12-14 15:58:36 2423

原创 视频播放 demo

GTVideoPlayer 源码:GTVideoPlayer.h#import <Foundation/Foundation.h>#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGIN/** 播放器 */@interface GTVideoPlayer : NSObject/** 全局播放器单例 */ (...

2019-11-23 14:01:49 1656

原创 位图排序

所谓位图,就是用一个位(bit)来标记某个元素对应的值,而键就是该元素。才用位为单位的来存储数据,可以大大节省存储空间。 位图通过使用位数组来表示某些元素是否存在,可进行数组的快速查找、判重、删除。 下面来看一个排序的示例。假设要对 0~7 中的 5 个元素(4,2,5,3,1)进行排序,我们采用位图的方法来实现快速排序: 因为要表示 8 个数,所以只需要 8 位,由于 8 位等于 1 字节

2018-02-03 21:37:41 554

原创 当机遇来敲门

最近遇到一个自己梦寐求之的机遇,可惜可能我没能很好的抓得住,自己多少有点难过,但很快就心情坦然了,凡事都要平常心。这时,我真有感觉到 “书到用时方恨少”,看来还是要加大力度努力学习了。接下来这一年,自己需要好好规划下要学习的内容,不能再眉毛胡子一把抓那样没有重点了,不然总是不成系统,这也想学,那也想学,到最后,这也没学好,那也没学精,结果会很惨的。曾国藩都说,“吴子序尝教我云,‘用功譬如掘井

2018-01-20 14:50:49 446

翻译 Core Text Tutorial for iOS : Making a Magazine App 翻译

原文:https://www.raywenderlich.com/153591/core-text-tutorial-ios-making-magazine-appCore Text 是一个底层文本引擎,当与 Core Graphics/ Quartz 框架一起使用时,它可以对布局和格式进行细粒度的控制。在 iOS 7 时候,Apple 发布了 TextKit 类库,它可以存储、列出和显示带有各种排

2017-12-07 20:02:35 452

原创 部署 ShowDoc 到自己的服务器

一、部署到自己的服务器环境要求PHP5.3以上版本、php-mbstring模块、php-pdo模块、mysql数据库克隆或者下载代码:https://github.com/star7th/showdoc导入数据库下载代码后,将根目录的showdoc.sql文件导入mysql数据库。(注意,需要创建本地 mysql 数据库,并将 showdoc.sql 脚本导入到数据库)修改配置文件进入Ap

2017-10-31 14:54:19 12380 1

翻译 Firebase 教程: iOS 实时聊天

原文:https://www.raywenderlich.com/140836/firebase-tutorial-real-time-chat-2貌似市场上的主流 app 都有聊天功能,所以,我们的 app 也应当添加聊天功能啦。然而,开发一个聊天工具是一个令人畏惧的工作。除了要有专门用于聊天的本地 UIKit 控件,我们还需要一个服务器来协调用户之间的消息和对话。幸运的是,有一些不错的框架可以帮

2017-10-25 10:25:03 2368 1

翻译 Firebase Tutorial: Getting Started 教程翻译

备注: 本教程已由 Attila Hegedüs 更新适配 iOS 10 和 Swift 3,原教程由David East 创作。 原文:https://www.raywenderlich.com/139322/firebase-tutorial-getting-started-2 翻译:JoeyChang 转载请标明出处原文:http://www.jianshu.com/p

2017-09-12 09:38:33 1094

原创 LoadRunner 压力测试

一、LoadRunner 安装1.复制一下地址,然后打开迅雷,新建,选择一个磁盘大的空间,显示4.02G 的ISO文件http://www.genilogix.com/downloads/loadrunner/loadrunner-11.isohttp://h30302.www3.hp.com/prdownloads/Software_HP_LoadRunner_11.00_Sim_Chines

2017-06-13 16:01:11 888

原创 Git 笔记

一、时光机穿梭1. 版本回退git status命令可以让我们时刻掌握仓库当前的状态。git diff顾名思义就是查看difference。提交修改和提交新文件是一样的两步,第一步是git add,第二步git commit。每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继

2017-05-31 10:28:12 368

原创 石榴花开

窗外的石榴花开了,阳光下,开得正艳。又是一年石榴花开,石榴花,很漂亮,花红似火。它的盛开,也预示着盛夏的到来。我对石榴花有种特殊的感觉,说不上喜欢,也说不上讨厌,可能更多的是一种回忆和怀念。多年前,在我家那块儿有十几亩之多的田地里,父亲种下了三行石榴树。石榴树不大,每行有一百来棵,三行石榴树,把那块儿地分割出了或大或小的四份儿。在我十几岁的时候,每年此时我会在那里度过很多时光。现在正是小麦收割的季节

2017-05-31 10:27:35 760

原创 《摔跤吧,爸爸》观后感

昨晚和三个同事一起去看了这部电影。本来想周末在网上下载了视频再看的,昨晚临下班,有个同事问要不要一起去看电影,我问看哪个,他说《摔跤吧,爸爸》,我随即说去。我是冲着阿米尔汗去的。电影一波三折,可谓感人得很。当影片中女主角获胜时电影播放慢镜头,我旁边的同事说,“我激动得都想吼出来了…”那个时候,我也很激动,我想应该有很多人会哭的。第一次看阿米尔汗的电影还是在我大一时候。记得那时候精神状态不佳。一次课堂

2017-05-31 10:27:08 926

原创 新办公室

今天是在新办公室办工的第一天,感触颇多。 想想在春秋就要三年半了。三年多的时间,说快很快,快到自己觉得过得颓废,时间消失了,自己却很不满意自己取得的进步或者说成绩;说慢也慢,毕竟是三年多,人的一辈子能有多少个三年多呢? 昨晚搬家整理东西的时候,翻看放在桌子上面很久很久的几本薄笔记,纸张旧旧的都变了颜色,里面随便记录的是自己以前开发时所画的逻辑,字体大多潦草,看着那些字,让我很是不满意自己的字体,

2017-05-31 10:26:13 580

原创 好习惯要坚持

刚吃过晚饭,手写了一小篇日记,没有多少字,用英文写的。 离开学校后,算来已经再也没有写过英文短文了,有点手生,有点不够自然,很多词,很多句子,组织得很生涩。只是在一边借着词典一边想的努力下,最后竟然比开始想象的写得多。算是个不错的开头吧。 自天气开始转暖后,我早上起来得比冬天里早了一个多小时。这个宝贵的时间,我用来学英语了。早上起来洗漱后,自己就坐在电脑旁毕恭毕敬开始看raywenderlich

2017-05-31 10:25:44 445

原创 iOS线程学习笔记

文字源自对以下文章的摘抄: 1. threading-programming-guide笔记一 2. threading-programming-guide笔记二 3. threading-programming-guide笔记三 4. threading-programming-guide笔记四感谢原作者。 这里摘抄,只为学习目的,以便日后再复习。一、OS X和iOS中提供的不那么底层的

2017-05-31 10:25:06 459

MyScrollviewDemo

Scrollview 图片翻页

2015-06-09

ImageLoaderIndicator

SDWebImage使用实例,下载图片后添加动画特效。SDWebImage使用实例,下载图片后添加动画特效。

2015-06-08

OC语言疯狂讲义(下

OC语言疯狂讲义(下)

2015-05-24

OC语言疯狂讲义

OC语言疯狂讲义,非常不错的资料。OC语言疯狂讲义,非常不错的资料。OC语言疯狂讲义,非常不错的资料。

2015-05-24

iOS 7蒙版特效Demo

主要可以拿来重复利用的是iOS7蒙版特效及datePicker隐藏出现动画。当然还有其它不错的功能,谁用谁知道。

2014-09-29

Github Pages 搭建个人博客

Github Pages 搭建个人博客,折腾好多天整理出的文档

2014-08-02

MyFunFacts

实现摇一摇功能,腾讯微博分享功能,新浪微博分享功能。

2014-07-30

FFmpeg使用指南

ffmpeg使用指南,非常难得的文档,我是花费了好多心思才得来的

2014-07-12

iOS多线程Demo

一个多线程并发的例子,欢迎有需要的同学下载,本来不应该要资源分的,只是我的资源分太少了,也是不得已而为之。下载的同学多多见谅。

2014-05-30

MyTextKitNotepad

跟随raywenderlich网站写的Textkit小demo,原网站未提供最后工程。这里写好分享一下。demo实现了文字环线排版,利用正则表达式处理文字,根据软键盘弹出关闭动态调整文字视图,赛贝尔曲线画图等。

2014-04-03

VideoPlayerRecord

一个简单的video操作小demo ,调用系统一些照片视频处理页面

2014-03-25

MVC 天气预报demo

我刚写的一个小demo,时间所限,只实现了查询四个省份儿的天气。如果您有兴趣可以完善。代码写得不够好,欢迎给出意见!

2014-03-20

spring课件

spring学习文档,可以看看哦。

2013-02-22

空空如也

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

TA关注的人

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