IOS

iOS使用UIKeyInput自定义密码输入框的方法示例

2019-02-13
前言 开发中很多地方都会遇到密码输入,这时候往往需要根据UI设计自定义.这里遵守UIKeyInput,实现协议中的方法,让自定义View可以进行文字输入:再通过func draw(_ rect: CGRect)绘制现自定义UI:使用配置类来统一接口:使用代理来管理各种输入相关的事件.文章末尾有提供OC和Swift双语的CLDemo下载,这里讲解就使用Swift. 1.遵守UIKeyInput协议,实现文字输入 遵守UIKeyInput协议,实现协议中- (BOOL)hasText. - (voi

iOS自定义PageControl的方法示例

2019-01-31
前言 本文主要给大家介绍了关于iOS自定义PageControl的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 自定义PageControl 我们经常会用到PageControl,但是系统的PageControl只有一种样式,不支持多样化,这里简单介绍一个简单的自定义PageControl. 主要功能: 可以自定义间隙 可以自定义高度 可以自定义选中点的宽度 每个点有点击事件 可以自定义选中和非选中的图片 可以设置居左.居中.居右样式 支持长条形状 实现: 将自定义P

iOS如何获取汉字(简体中文)笔画数详解

2019-01-31
思路 1.汉字字典库匹配笔画数 优点: 实现逻辑简单,字典库好扩展 缺点: 内存消耗较大(不过也能承担) 思路: 这种实现思路是比较简单的,具体思路是将简体汉字所有字都穷举出来,然后分别匹配上指定的笔画数,当做一个大的数据库,每次都去查询一下. 2.汉字GBK编码匹配笔画数 优点:相比字典库匹配,效率高,速度快 缺点:添加编码库不好添加,不好扩展 思路: 这种实现方案是需要获取GBK编码分别对应的笔画数,放到指定数组(数据库)中,每次通过输入的汉字 转码为二进制,通过二进制的值 匹配数据库中的笔

iOS webview捕获H5按钮方法示例代码

2019-01-29
前言 本文主要给大家介绍了关于iOS webview捕获H5按钮的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法如下: 实现iOS webview捕获使用H5中按钮的点击方法,可以使用JSContext. 1.在工程中Linked Frameworks and Libraries中加入JavaScriptCore.framework 2.在使用的地方#import <JavaScriptCore/JavaScriptCore.h> 3.实现webview的代理方

iOS实现百度地图定位签到功能

2019-01-27
写在前面: 项目需求用到这个功能,主要目的是实现老师设置位置签到范围,学生在一定范围内进行签到的功能. 功能如下方截图: 屏幕快照 2019-01-28 上午10.29.26.png 简要介绍: 下面记录一下主要的实现流程,功能的实现主要是根据百度地图开发者官网提供的api文档,各项功能之间组合.百度地图的SDK现在分成了地图功能和定位功能两块不同的SDK,BaiduMapAPI这个是基础的地图功能,BMKLocationKit这个是定位功能.项目里实现定位签到功能用的的SDK包括上面说的这两个

iOS图片压缩、滤镜、剪切及渲染等详解

2019-01-26
前言 本文主要给大家介绍了关于iOS图片压缩.滤镜.剪切及渲染的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 主要内容: 1.图片基础知识的介绍 2.图片压缩 简单的回顾一下从相册获取一张图片 直接格式转换压缩:png.jpg.Context 重新绘制 3.图片处理 基于图片像素修改 图片剪切clip 渲染render 截屏 一.图片基础知识的介绍 一张图像是像素点的集合,每一个像素都是一个独立,有自己的颜色.图像一般情况下都存储成数组,可以说是二维数组.当成百上千万

简单说说iOS之WKWebView的用法小结

2019-01-26
WKWebView的优势 性能高,稳定性好,占用的内存比较小, 支持JS交互 支持HTML5 新特性 可以添加进度条(然并卵,不好用,还是习惯第三方的). 支持内建手势, 据说高达60fps的刷新频率(不卡) 1.Xcode新建My.html文件,自定义html内容,主要代码如下: (1)标签为UI样式(写了简单的JS代码,目的用于讲解交互) (2)onClick为JS事件,当JS想给OC传递参数时,采用如下代码:window.webkit.messageHandlers.<方法名>.post

ios基础教程之常见的数组使用方法

2019-01-25
一.数组的简单介绍 1.数组是一个对象,是任意类型对象地址的集合,OC的数组可以存储不同类型的对象 2.OC的数组只能存储对象,不能存放 简单的数据类型(int, float, NSInteger-)除非通过一些手段把简单数据类型变成对象.在C语言中的数组可以保存任意类型的数据. 3.存储的内存是连续的 二.不可变数组 0.定义数组 //定义一个空数组 NSArray *array1 = [NSArray array] ; array1 = @[];//空数组 //通过指定对象创建数组 arra

iOS开发UICollectionView实现拖拽效果

2019-01-23
一.介绍 iOS9提供API实现单元格排序功能,使用UICollectionView及其代理方法.iOS9之后有自带方法可以实现该效果,只需添加长按手势,实现手势方法和调用iOS9的API交换数据,iOS9之前需要自己写方法实现这效果,除了要添加长按手势,这里还需要利用截图替换原理,手动计算移动位置来处理视图交换和数据交换. 二.方法和步骤 1.创建工程项目和视图控制器,如下图 2.声明对象和设置代理和数据源代理 @interface ViewController ()<UICollection

iOS开发实现UIImageView的分类

2019-01-23
本文实例为大家分享了iOS实现UIImageView的分类代码,供大家参考,具体内容如下 一.Objective-C版 .h文件 #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> #import <QuartzCore/QuartzCore.h> /** * 这个分类为UIImageView添加一些有用的方法 */ @interface UIImageView (WLKit) /** * 创建一个UIIm

iOS读写json文件的方法示例

2019-01-23
前言 本文主要给大家介绍了关于iOS读写json文件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 一.获取沙盒路径 每个iOS应用都有自己专属的应用沙盒,应用沙盒就是文件系统中的目录.但是iOS系统会将每个应用的沙盒目录与文件系统的其他部分隔离,应用必须待在自己的沙盒里,并只能访问自己的沙盒. 沙盒目录 包含内容 Documents 存放应用运行时生成的并且需要保留的数据,iCloud同步时会同步该目录 Library/Caches 存放应用运行时生成的数据,iCl

iOS实现微信分享多张图片功能

2019-01-22
前言 微信分享到朋友圈,可分享的类型有:文字类型.图片类型.音乐类型.视频类型和网页类型,但是我们在做图片分享的时候发现微信给的API只能分享一张图片,达不到一些APP的需求,而产品汪或者Boss想要分享多张图片,比如前段时间我做的一个APP,是电商类APP,想把商品的图片都分享到朋友圈,查看微信的API根本没有提供API,在这里我们只能用iOS系统自带的分享了. UIActivityViewController UIActivityViewController是在iOS 6开始支持的,同样是不

iOS实现图片水印与简单封装示例代码

2019-01-22
前言: 常用的许多软件中图片加水印的功能是非常常见的,如微博,微信,今日头条等等图片上都会有. 首先我们了解一下什么是水印及其作用? 水印:在图片上加的防止他人盗图的半透明logo.文字.图标 水印的作用:告诉你这个图片从哪来的,主要是一些网站为了版权问题.广告而添加的. 相关知识点:Quartz2D相关内容 核心代码: 将字符串添加到图形上下文的方法 - (void)drawAtPoint:(CGPoint)point withAttributes:(nullable NSDictionary

iOS APP签名机制原理详解

2019-01-22
苹果的需求 为了保证系统的安全性,所有iPhone上安装的应用必须是经过苹果授权的 安装包不需要上传到App Store也能被安装 (开发调试 企业灰度) 防止证书权限滥用:设备限制.指定APP.iCloud/PUSH/后台运行等附加权限控制 苹果的解决方案:双层代码签名+描述文件: 这里画一张图附上: 在iOS出来之前,主流的操作系统(MacOS/Windows)软件随便从哪里下载都能运行,系统安全存在隐患,盗版软件.病毒入侵.静默安装等等,苹果希望解决类似的问题,保证在iPhone iOS上

iOS实现新年抽奖转盘效果的思路

2019-01-22
临近春节,相信不少app都会加一个新的需求--新年抽奖 不多废话,先上GIF效果图 DEMO链接 1. 跑马灯效果 2. 抽奖效果 实现步骤: 一.跑马灯效果 其实很简单,就是通过以下两张图片,用NSTimer无限替换,达到跑马灯的效果 实现代码: _rotaryTable = [[UIImageView alloc] initWithFrame:CGRectMake((kScreenWidth-366*XT)/2, 218*XT, 366*XT, 318*XT)]; _rotaryTable.

iOS捕捉截屏事件并展示截图效果

2019-01-21
摩拜单车.微信的截屏就做的比较人性化. 现在很多APP开始支持用户截屏后,主动获取截图并弹出分享视图,这样用户就不用去相册去找了,感觉体验不错,今天就分享一下 截屏开发的心得,希望能帮助iOS的朋友. iOS7之后,苹果开放出一个通知:UIApplicationUserDidTakeScreenshotNotification,截屏时系统就会发出这个通知,需要你注册这个通知,就能捕捉到截屏图片. 下面的代码,实现的是用户截屏后,捕获到截屏图片,展示出来: //注册截屏通知 [[NSNotific

iOS中谓词(NSPredicate)的基本入门使用教程

2019-01-20
前言 首先,我们需要知道何谓谓词,让我们看看官方的解释: The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering. NSPredicate类是用来定义逻辑条件约束的获取或内存中的过滤搜索. 可以使用谓词来表示逻辑条件,用于描述对象持久性存储在内存中的对象过滤.其实意思就是:我是一个过滤器,不

iOS应用脚本重签名的实现方法

2019-01-20
上一篇iOS APP签名详解我们了解了iOS签名的机制和原理,这一篇我们一起来动手写一个自动重签名的脚本,懒是程序员乃至人类进步的终极力量,造轮子写工具可以极大的避免重复性工作,为我们节省更多的时间放在思考上,话不多说撸起袖子开始干: 第一步:获取脱壳的ipa包 从iTunes 12.6.3及以前的版本上直接下载 (macOS Mojave Doesn't Support),这样获取到的是正版ipa,需要用Clutch.dumdecrypted等工具先脱壳,否则别人的加密验证不通过无法安装 各类

iOS登录时验证手机号与倒计时发送验证码问题详解

2019-01-19
前言 我们做登录的时候经常会使用到,验证手机号是否正确.向手机发送验证码倒计时60s的问题,我们改如何解决呢?让我们一起来探讨一下吧. 如下图: 首先,我们先说说判断手机号码是否正确的问题吧,我的想法是给字符串添加一个分类,然后写上这样的代码: + (BOOL)valiMobile:(NSString *)mobile{         if (mobile.length != 11){             //判断手机号码是否为11位             return NO;     

iOS中NSPredicate谓词的使用

2019-01-19
前言 NSPredicate 谓词, 其实 NSPredicate 有时候完全可以被 [for...][if..else] 替换来实现功能, 但会造成代码不够优雅, 一堆的判断循环 有时一句 NSPredicate 便可实现. 今天作者就聊一聊谓词的使用. 一 NSPredicate 理解说明 NSPredicate : 中文直译谓词, 用来定义逻辑条件约束的搜索 或 内存中的过滤. 如同语法中的谓词, 如 [3 大于 2]中"大于"就是一个就是谓词. 简单点说 它是逻辑判断, 如同过