自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(120)
  • 收藏
  • 关注

转载 Swift - zip函数使用详解(附样例)

本文主要来讲讲 Swift 中提供的 zip 这个函数。这个 zip 函数可不是用来压缩文件的,其作用是将两个序列的元素,一一对应合并生成一个新序列。    该函数一般不会单独使用,而是会和其它的方法配合使用。下面我通过几个样例来演示它的用法。1,将两个数组合并成一个新的元组数组(1)下面代码我们使用 zip 结合 map 来合并生成新数组。注意:zip 函数生成的

2017-11-02 14:42:58 3416 1

转载 Swift - 高阶函数介绍(map、flatMap、filter、reduce)

Swift 提供了如下几个高阶函数:map、flatMap、filter、reduce。使用高阶函数进行函数式编程不仅可以简化我们的代码,而且当数据比较大的时候,高阶函数会比传统实现更快,因为它可以并行执行(如运行在多核上)。一、map 函数1,方法介绍map 方法获取一个闭包表达式作为其唯一参数。 数组中的每一个元素调用一次该闭包函数,并返回该元素所映射的值。简单

2017-11-02 14:39:01 3937 2

转载 iOS - AR引擎Vuforia入门教程(官方样例的安装部署说明)

增强现实技术(Augmented Reality,简称 AR)在最近几年比较火热。我们如果想要开发一个 AR 应用或者 AR 游戏,那么最快捷的方式就是采用一款成熟的 AR 引擎。Vuforia 是目前使用人数最多的 AR 引擎,功能强大,开发者使用其提供的 AR SDK 可以很轻松实现图片、物体、文本和标记的识别和追踪,以及重建环境。一、官方Demo提供的9种应用展示

2017-09-19 14:49:10 4091

转载 Swift - 第三方Alert弹出框组件(SCLAlertView)使用详解

告警提示框(消息提示框)在 App 开发中肯定少不了,除了简单地用来显示提示信息外,有时也会作为一些具有交互功能的选择对话框、输入对话框。通常情况下,我们会使用 iOS 自带的 UIAlertController 组件来实现。虽然 UIAlertController 使用方便,但样式、功能都有限。本文介绍一个优秀的第三方 Alert 组件:SCLAlertView。一、安装配置

2017-08-17 14:16:53 3742

转载 Swift - 计算运动距离的功能实现(分别基于GPS、计步器)

一、基本介绍有时我们需要计算从 A 点移动到 B 点的距离,或者开发一个计算跑步公里数的 APP。即点击开始统计后,可以实时计算出跑过的路程长度。这个功能通常有两种实现方法:一种是基于 GPS 定位实现(使用 CoreLocation)、另一种基于计步器实现(使用 CMPedometer)1,二者的实现原理计步器实现:使用 CMPedometer 可以查询近 7

2017-08-17 14:14:24 2918

转载 Swift - UIStackView使用详解1(基本介绍、使用样例)

在应用开发中少不了界面元素的布局、适配、自适应。之前苹果已经为我们提供了 Auto Layout 和 Size Classes,方便我们实现页面的自适应弹性布局。但对于一些复杂的交互界面,用起来还是略显繁琐。到了 iOS9,苹果又为我们带来了一个新特性:Stack View(堆栈视图)。使用堆栈视图布局,在某些场景下可以大大减轻我们的工作量。一、基本介绍1,什么是 UI

2017-08-15 17:24:27 7604

转载 Swift - 伸缩优先级详解(Content Hugging、Content Compression Resistance)

一、基本概念介绍1,固有内容尺寸(intrinsic content size)在开发中,有的控件或视图其本身就自带大小。这些控件能通过自己显示的内容计算出需要的 Size,这个自动计算出来 Size 就叫该控件的固有内容尺寸(intrinsic content size)。比如 UIButton、UILabel 控件,我们设置完显示文字后,它就能根据字符串长度自动计算出宽高尺

2017-08-10 17:11:50 1249

原创 Swift - 获取应用名称、应用版本、设备型号、系统版本等信息

有时我们在 App 中提交一些统计信息或者用户反馈信息时,为了能更好地进行分析,通常会附带上当前应用程序的名称、版本号、设备型号、以及设备系统版本。下面演示如何获取这些信息。1,效果图程序启动后自动获取相关的应用信息以及设备信息,并打印到控制台中。2,样例代码默认情况下我从 UIDevice 中获取设备型号时只能得到 iPhone

2017-06-02 09:13:43 10098 2

原创 iOS中文字体斜体效果

var testLabel = UILable(frame: CGRect(x: 100, y: 100, width: 200, height: 40))testLabel.backgroundColor = UIColor.cleartestLabel.text = "斜体"let matrix = CGAffineTransformMake(1, 0, tanf(-20 * (C

2017-06-01 11:46:02 1355

原创 Swift - 计算次方(2的N次方,2的随机次方)

1,使用12var value = 1//2的4次方var value = 1Int(arc4random_uniform(5))  //2的0~4随机次方(包括0,4)

2017-05-26 15:01:45 5812

转载 Swift - 去除tableView在编辑模式下的自动缩进(单元格头部不留空白)

1,问题描述我们知道当表格 tableview 进入到编辑状态时,单元格内容会自动向右缩进,这样留出的空间可以用来显示新增或删除按钮图标。               如果我们只需要单元格拖动排序功能,而不要前面的图标,可以在 editingStyleForRowAt 委托方法中返回 none 即可。不过单元格的缩进仍然存在,左侧还是会有多余的空白区域。

2017-05-03 08:42:04 2607

原创 Git常用命令

查看、添加、提交、删除、找回,重置修改文件git help # 显示command的helpgit show # 显示某次提交的内容 git show $idgit co -- # 抛弃工作区修改git co . # 抛弃工作区修改git add # 将工作文件修改提交到本地暂存区git add . # 将所有修改过的工作文件提交暂存区

2017-04-28 09:18:22 283

转载 Swift - 自定义UIAlertController的样式1(修改标题、按钮的字体和颜色)

自 iOS8 起,苹果把 UIActionSheet 和 UIAlertView 合并为了 UIAlertController。UIAlertController 的用法我之前也写过相关文章:Swift - 告警提示框(UIAlertController)的用法。其默认样式如下:有网友问这个 UIAlertController 默认的样式能不能修改。虽然 UIAlert

2017-04-21 09:21:37 8786 1

转载 Xcode - 直接截取手机的屏幕图片,并保存到电脑

在 iOS 开发中,有时我们需要截取手机屏幕保存到电脑上。通常的操作就是先在手机上使用 Home键 + 开机键 进行截屏,再将截图传到电脑上。其实还有个更方便的做法。使用Xcode可以直接截取手机上的图,并保存到电脑桌面上。(1)将手机接入电脑。打开 Xcode,将发布目标选择手机。(2)点击 Xcode 菜单“Debug”->“View Debug

2017-04-20 15:55:19 1460

转载 Swift - 字符串的替换与过滤(附:过滤emoji表情符号)

开发中常常会遇到需要将 String 字符串中的特殊符号给过滤掉,或者将某些子字符串替换成其他的内容,下面通过样例进行演示。一、字符串替换1,简单的替换下面将字符串中所有的 com 替换成 COM。1234567//原始字符串let str1 = 

2017-04-17 09:52:33 11678

转载 Swift - 去除字符串前后的空白(trim方法)

大多数编程语言都提供了 trim 方法来除去字符串前后多余的空白,Swift 中也提供了类似的方法:trimmingCharacters,这个方法除了可以清除前端或后端多余的空白,还可以清除其他指定的字符。 1,删除前后多余的空格(1)样例代码12345678//原始字符串

2017-04-17 09:51:37 9679

原创 iOS开发之如何跳到系统设置里的WiFi界面

之前以为,苹果不支持直接从应用跳到系统设置里的WiFi界面。后来发现,这个小功能是可以实现的,而且实现起来并不麻烦。让我们一起来看看吧!需求从应用跳到系统设置里的WiFi界面有这个需求存在吗?答案是肯定的。比如以下两个例子:在没有网的状态下,你可能想提醒用户去设置界面连接WiFi。如果不能跳到WiFi界面,只能在APP里面做出文字提示。这样很多小白用户可能不会看提示,只会觉

2017-04-10 15:06:12 3792

转载 Swift - 实现表格tableViewCell里嵌套collectionView(附样例)

有时要实现一个复杂的页面布局,单单使用 UITableView 实现不了,需要通过 UITableView 和 UICollectionView 结合实现,即每个单元格 tableViewCell 中都嵌套一个 collectionView。下面通过样例演示如何实现。1,效果图(1)表格中每一个单元格对应一个月份的图书列表。(2)单元格中头部显示月份标题。内部通过 collec

2017-04-01 17:54:46 4959

转载 Swift - 监听照片库里的变化(自动获取最新添加的图片)

当我们使用微信时会发现它有个预判“你可能要发送的照片”的功能,具体操作步骤如下:先打开微信进行聊天,然后将微信退到后台。接着进行一些拍照或者截图操作。再回到微信中,点击输入框旁边的加号发送附件。微信便会自动提示是否需要发送刚刚新增的那张照片,并显示照片的缩略图。(如果刚才新增了多张,则显示最后添加的那张。)1,实现原理要实现这个功能其实很简单 ,就是程序启动

2017-03-20 10:39:22 1499

转载 Swift - SQLite中Data类型数据的插入、读取(BLOB类型字段)

我原来写一过一篇文章介绍如何使用第三方的 SQLiteBD 库来操作 SQLite 数据库(点击查看)。当时存取的都是一些数字、字符串这样的基本数据类型,有网友问如果想存个图片进去应该怎么做。本文演示如何实现 Data 类型的数据存取。1,实现原理(1)首先我们建表的时候,用于保存 Data 数据的字段要使用大数据类型,比如:BLOB(二进制数据)(2)读取操作同其

2017-03-09 09:18:54 5277

转载 Swift - 通用链接(Universal Links)的使用详解(链接打开app)

一、通用链接介绍通用链接(Universal Links)是 iOS9 推出的一项功能。如果我们的应用支持通用链接,那么就能够方便的通过传统的 HTTP 链接来启动 APP(只要设备上已经安装了这个 App,不需要额外做任何判断),或者打开网页(如果 iOS 设备上没有安装该 App)1,通用链接与URL Scheme的区别(1)URL Scheme 使用介绍在 iOS

2017-03-09 09:17:38 10893 1

转载 Swift - 判断是否有某功能访问权限,没有则提示,并自动跳转到设置页

由于 iOS 系统的安全限制,App 如果需要访问设备的通讯录、麦克风、 相册、 相机、地理位置等时,需要请求用户是否允许访问。 有时用户不小心点了“不允许”,后面可能就不知道要去哪里再开启这个权限了。这就要求我们应用在每次调用相关功能的时候先获取相关的授权状态,如果还没授权则弹出授权申请的提示框。如果之前被拒绝了,则弹出相关提示框让用户很方便地自动跳转到设置页面去

2017-03-09 09:15:25 3016

转载 Swift - 设置UILabel、UITextView的文字行间距

有时我们需要调整 label 或 textView 的文本行间距大小,但这两个组件都没有相关属性可以直接设置。这个就需要借助富文本(NSAttributedString)来实现。一、设置UILabel的行间距1,效果图左侧是默认的行间距,右侧是将行间距修改成 20。            2,样例代码12

2017-03-09 09:13:46 4812

转载 Swift - 第三方日历组件CVCalendar使用详解1(配置、基本用法)

CVCalendar 是一款超好用的第三方日历组件,不仅功能强大,而且可以方便地进行样式自定义。同时,CVCalendar 还提供月视图、周视图两种展示模式,我们可以根据需求自由选择使用。一、安装配置(1)从 GitHub 上下载最新的代码:https://github.com/Mozharovsky/CVCalendar(2)将下载下来的源码包中 CVCalendar.xcode

2017-01-03 09:32:58 4463

转载 Swift - 在TableViewCell中获取父TableView(附:获取任意类型的父View)

一、在TableViewCell里获取对应的TableView有时我们需要在自定义的单元格(tableViewCell)中获取其所在的表格(tableView)对象。除了可以从外部把 tableView 传入到 cell 中去外,还可以通过循环遍历 cell 的 superview 来得到其所在的父 tableView。1,扩展UITableViewCell为方便使用,这里对 UI

2016-12-28 17:49:11 3921

转载 Swift - 去处图片的白色、黑色背景(使UIImage背景透明)

1,效果图(1)点击“白底原图”“黑底原图”按钮可以切换显示白底或黑底的图片。(2)点击“抠图”按钮后,将当前选择的图片的背景变成透明,并显示在 imageView 上。这里为了看出处理后的图片与原图的区别,我将 imageView 的背景色设为淡蓝色。(3)点击“抠图并合成”按钮后,除了将原图的白色或黑色背景去处外,还会将处理后的图片与另一张图片进行合并显示。 

2016-12-28 17:46:52 5036

转载 Swift - 实现日志输出的封装1(显示出调用的文件名、方法、行号)

在开发调试程序时,我们少不了使用 print 方法进行日志打印。当然简单地调试使用 print 方法就够了,但如果日志输出的地方很多,就不好区分出每条日志具体是在哪里打印的。本文对日志打印功能做个封装,自动实现日志信息的格式化。1,效果图从下图可以看出,控制台除了输出我们指定的日志内容外,还会自动记录日志触发点的文件名、函数名、行号。2,

2016-12-16 09:51:40 2939

转载 Swift - 如何连续dismiss 2个VC视图控制器(以及直接跳回根视图)

我们知道通过 present 和 dismiss 方法可以进行页面(ViewController)跳转。其中 present 是加载新的模态视图,而 dismiss 是退出当前视图,回到上一个视图。但有时我们并不想要一级一级地往回跳,比如需要跨级跳转,或者直接跳回到根页面上。下面通过样例分别进行演示。一、连续dissmiss两个视图比如下面样

2016-12-14 09:17:35 4334

转载 Swift - 微信聊天群头像实现 (群聊的组合头像)

1,样例效果图(1)组合图片的功能我使用扩展 UIImage 的方式实现。(2)根据初始化传入的图片数组中图片数量的不同(超过9张图片的话也只显示前9个),组件会自动设置内部图片的尺寸和位置。(3)除了只有一张图片的情况外。内部小图片尺寸实际上只有两种。即小于等于4张,或者大于4张这两种情况。(4)生成返回的是一个 UIImage 对象,为了让头像图标有圆角效果。这

2016-12-12 09:25:31 3116

原创 Xcode 8 Instruments 学习

这篇文章主要介绍使用Instruments的 Time Profiler 的使用前言1.很多公司都恨不得把app压法周期压缩到最低,这就导致了开发中隐藏了很多问题,有点经验的工程师草率的优化下,更糟的情况那些没有经验的工程师甚至不会对app进行任何优化.2.某种程度上来说,你开发过程中是可以忽略性能优化的. 十年前,移动设备的硬件资源是非常有限的.甚至连浮点数都是被禁止的.

2016-12-08 17:12:21 944

原创 如何在Xcode8上安装插件

推出Xcode8已有两个多月,也有不少朋友分享了安装插件的方法,笔者在这里整理了一个亲测有效的方法。1、更新Xcode,目前最新版本是8.1;2、由于安装插件会影响原来的Xcode打包上传,我们在应用程序里复制一个Xcode,并重命名为XcodeSigner;XcodeSigner3、打开钥匙串,创建新证书,名称填XcodeSigner,证书类型选择

2016-12-07 10:28:00 549

转载 Swift - QQ讨论组头像的实现 (多人聊天的组合头像)

我们知道 QQ 里面的联系人头像是圆形的。当我们发起多人聊天时,会自动生成一个讨论组。这个讨论组的头像图标是由组内人员头像自动组合生成的。比如:组内有两个人,就用两个人的头像组合成讨论组的头像图标。有三个就是用三个头像来组成,以此类推。最多5个。本文演示如何实现这种组合头像的功能。1,讨论组头像组件效果图(1)根据初始化传入的图片数组中图片数量的不同(超过 5 张图

2016-12-07 09:25:24 3168

原创 Swift高手进阶 - 10个技巧

听说你已经学习Swift几个月了,有没有想更进一步成为Swift高手的想法?我这里有10招秘技,各位施主且听我慢慢道来,结个善缘。1. 扩展(Extension)任务: 求数字的平方。1234// 菜鸟版func square(x: Int) -> Int { return x * x }v

2016-12-06 14:37:40 596

原创 Swift Protobuf 初探 —— 继 XML 后,JSON 也要被淘汰了吗

Protocol Buffers 是什么?Protocol buffers are Google's language-neutral, platform-neutral, extensible mechanism for serializing structured data – think XML, but smaller, faster, and simpler. —— Goog

2016-12-06 14:33:54 924 1

原创 Swift - 调整UIScrollView的滑动速度(适用于tableView、collectionView)

当我们使用手指滑动滚动视图时(UIScrollView、UITableView、UICollectionView),抬起手指后,会发现视图还会保持惯性继续滚动一段距离。然后逐渐减速停下。如果觉得快速滑动过程中,滚动速度过快,一滑就溜出去很远。我们可以通过修改 decelerationRate 属性,来控制减速的速度。有两种方式来设置 decelerationRate 属性。1,使用系统定义

2016-11-30 10:54:05 6097

原创 判断两个日期是不是同一天的几种方法(swift3新增了一种方法)

1,格式化成字符串比较下面方法将两个日期格式化成只包含年月日的字符串,再比较两个字符串是否相等。12345678910//初始化日期格式器let dformatter = DateFormatter()dformatter.dateForm

2016-11-30 10:50:26 6797

原创 swift-生成二维码(可带图片)

import UIKitclass ViewController: UIViewController {    overridefunc viewDidLoad() {        super.viewDidLoad()        // Do any additional setup after loading the view, typically

2016-11-25 11:12:02 725

转载 IQKeyboardManager第三方库的使用

IQKeyboardManager是iOS中解决键盘弹起遮挡UITextField/UITextView的一种很实用的工具。无需输入任何代码,不需要额外的设置。使用IQKeyboardManager的你只需要将源文件添加到项目。这里附上下载链接:https://github.com/hackiftekhar/IQKeyboardManagerIQKeyboardManager支持Objec

2016-11-21 11:34:31 485

转载 让你的 Xcode8 继续使用插件

随着 iOS10 的正式版即将发布,Xcode8 GM 也在发布会后放出,本文不会涉及到 Xcode8 有哪些更新,而是记录了如何让 Xcode8 继续支持 Plugin。Update:10.8如果你的 XcodeGr8 时不时就转菊花卡死,可以试下这种方式:打开系统偏好设置->安全性与隐私->通讯录->将 Xcode 前面的勾去掉,如下图所示,解决方案来自 Xvim 的这

2016-11-12 14:34:08 829

转载 iOS 10 UICollectionView 性能优化

前言关于 iOS 10 UICollectionView的新特性,主要还是体现在如下3个方面顺滑的滑动体验现在基本上人人都离不开手机,手机的app也每天都有人在用。一个app的好坏由它的用户体验决定。在可以滑动的视图里面,必须要更加丝滑柔顺才能获得用户的青睐。这些UICollectionView的新特性可以让你们的app比原来更加顺滑,而且这些特性只需要你加入少量的代码即可达到目的

2016-11-12 13:36:53 11164

空空如也

空空如也

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

TA关注的人

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