
功能实现
Clement_Gu
代码是个神奇的东西
展开
-
ios oc swift混编导致打包过大问题 avoid SwiftSupport folder
####SwiftSupport 导致包过大 在OC swift混编后打包由于SwiftSupport支持文件会导致混编后的打的包文件会偏大。####解决方法Build Setting -> User-Defined -> EMBEDDED_CONTENT_CONTAINS_SWIFT 设置为NO#####相关链接avoid SwiftSupport folder i...原创 2018-10-31 20:23:55 · 5368 阅读 · 1 评论 -
自定义公用池之:Constraint 约束
就像空间的标签一样,一直致力于纯代码的开发,8月份swift 3.0 的上线后,由于改动比较大项目中的代码更新吃了不少苦头,想了半天想到了一种解决版本不稳定的swift的减少代码更新带来的工作量的方法,同样这也是我一直想实现的代码库。有了代码库开发的效率加快许多,同时达到低耦合高内聚的目的。 下面说一段个人看法,然后上代码和github使用demo。/** 1. 这是一个约束代码pool 将原创 2016-12-05 21:34:22 · 323 阅读 · 0 评论 -
原比例改变图片大小
就是根据需要按照原来的样子重绘图片 上代码:xcode 7.3.1 /** 保持图片比例根据设置的大小重绘图片更改图片内存大小并不改变图片样子 - parameter image: 要修改的图片 - parameter maxDimension: 包含图片的矩形区域最长的边长原创 2016-11-22 16:06:53 · 426 阅读 · 0 评论 -
监听TextView内容是否滑到底部的事件
上一个博客写了获取textview高度的方法 这边接下来写一个如何获得textview的内容是否滑到底的方法,一般在让用户阅读协议后签字,用来判断用户是否看完协议内容。 因为Demo写的还是比较详细的,所以直接上代码。 xcode 7.3.1 swift 2.2import UIKit//因为UITextView 是UIScrollView 的子类 所以scrollView的代理他也可以用c原创 2016-12-02 14:29:39 · 2322 阅读 · 0 评论 -
获取TextView的内容高度
先看下关键的方法 textView.sizeThatFits(CGSize) 然后看官方文档 Asks the view to calculate and return the size that best fits the specified size.Declaration SWIFT func sizeThatFits(_ size: CGSize) -> CGSize OBJEC原创 2016-12-01 11:53:35 · 2396 阅读 · 0 评论 -
获取drawRect绘图后的截图
这是一个获取画板画出的内容的 图片的功能 //设定截图区域 UIGraphicsBeginImageContextWithOptions(self.bounds.size,true, 1) //获取当前截图的上下文 let contextRef =UIGraphicsGetCurrentContext原创 2016-11-04 18:00:51 · 241 阅读 · 0 评论 -
Xcode 8 注释快捷键失灵解法
更新Xcode 8 发现command + / 快捷注释键没用了按一下操作可以解决问题:打开终端->sudo /usr/libexec/xpccachectl 将这句话复制粘贴 回车 -> 然后重启电脑就可以了原创 2016-09-20 15:39:53 · 3698 阅读 · 0 评论 -
Xcode 7.3.1 的framework的制作之Xib,图片和storyboard的制作
上一篇文章详细介绍了制作过程,这边就不多说了,现在主要介绍图片和xib以及storyboard的接入。其实总结起来就是一句话:就是都从bundle加载而bundle不是main bundle 是frame的bundle。原创 2016-08-26 15:14:26 · 625 阅读 · 0 评论 -
Xcode 7.3.1 的framework的制作
网上太多framework的制作版本了,很多没用了现在给大家带上最新的制作方法。声明:原创 2016-08-25 17:26:14 · 402 阅读 · 0 评论 -
多storyboard之间的切换
最近在做framework的时候碰到storyboard切换问题这边复习下oc //设置bundle的这句代码可以不要如果不是封装framework是不需要的直接设置成nil就可以了// NSBundle *mainBundler = [NSBundle bundleForClass:[self class]]; //bundle设置成nil原创 2016-08-25 17:07:01 · 335 阅读 · 0 评论 -
设置静态全局变量 oc swift
静态全局变量分swift和oc版swift版相对比较简单struct Example { staticvar example:String =""}oc先写设置静态变量的方法#import @interface staticPool : NSObject//静态变量的set get 方法+(voi原创 2016-09-13 01:14:27 · 3024 阅读 · 0 评论 -
iOS 导航pop到指定页面
一般导航条pus的时候是将新的页面压在老的页面上面,老的页面是被存储起来的所以,返回的时候就要把压在存储里面的viewController给释放出来,而不是继续push 所以要用到pop,下面简单的介绍pop到指定页面swift ifself.navigationController?.viewControllers.count > 3原创 2016-09-13 00:48:34 · 1012 阅读 · 0 评论 -
swift 元组的使用
最近在定义方法参数的时候用到元祖,当然也可以用数组或字典代替(但是没有想要的提示用户输入类等的效果)所以发现元祖还是很好用,废话不多说 附上自己的一个列子然后加上一些资料 func GJ_contentOffsetConstraint(subView:UIView,superView:UIView,constant:(left:CGFloat,top:CGFloat,right:CGF转载 2016-08-19 14:48:42 · 253 阅读 · 0 评论 -
swift中模型Model的创建
//简介 oc是一个面向对象即模型的开发,一般规范的开发都是以模型作为对象进行开发的。那么在swift中模型也同样重要下面介绍一下模型的赋值1.介绍下 模型一键赋值的代码 setValuesForKeyWithDictionary 这句话的作用 是把字典Dictionary中的key对应的Value 赋值给模型中的与key一样的属性1)分三种情况 第一种情况是 模型中的属性等于 字典中的额原创 2016-08-17 15:44:37 · 10348 阅读 · 0 评论 -
将指定页面横屏 landScape
碰到一个功能就是使指定的页面横屏,然后找了一些方法其中之一是两句代码:如下(不推荐,有的swift环境支持有的不支持) //MARK:将这个页面横屏的方法 override func shouldAutorotate() -> Bool { return true } override func supportedInterfaceOrientations()原创 2016-12-08 11:14:15 · 1017 阅读 · 0 评论 -
navigation实现跨线路返回
最近遇到一个例子,是导航里push了几个页面,然后要返回到不在导航下的页面,再返回就到跟控制器了。 1.实现思路 点击返回事件使用push将页面压入 2.同时将除了根控制器以外的页面缓存清空,这样就再点击返回的时候就可以返回根控制器 或者返回指定的保留的页面上 3.核心方法 navigationController?.viewControllers.removeRange(Range.init原创 2016-12-14 16:47:13 · 230 阅读 · 0 评论 -
ios 替换字符串
上代码 swift 2.2 xcode 7.3.1//创建可变字符串let num = NSMutableString.init(string: "12345678910")//替换要替换的范围和对应要替换的文字 num.replaceCharactersInRange(NSRange.init(location: 3, length: 4), withString: "原创 2016-12-14 16:50:52 · 454 阅读 · 0 评论 -
ios 生成随机背景色
利用arc4random()生成随机背景色 int r = arc4random() % 255; int g = arc4random() % 255; int b = arc4random() % 255; CGFloat rr = r / 255.0; CGFloat rg = g / 255.0; CGFloat rb = b / 25...原创 2018-06-27 10:37:11 · 886 阅读 · 0 评论 -
ios 获取外网ip
今天在网上找了一个获取外网地址的方法无奈,Data的initcontentsOfURL一直不好使,然后查询了一些资料得到了一个能使用的方法。下面贴代码。/// 获取外网ip////// - Returns: 外网ipfunc getIpinfo() ->String?{/** 这是ip查询网址 */let urlStr = "http://ip.taobao.com/service/getI...原创 2018-05-31 17:40:44 · 1112 阅读 · 0 评论 -
React Native mac环境搭建
一、React Native 简介2015年3月26日,FaceBook公司对外正式发布了React Native ——使用React框架跨平台开发原生移动应用的开源技术框架(简称RN)。开发者可以使用RN高效的开发运行与Android与iOS操作系统的应用程序。他的设计理念是:使用React Native 开发,既拥有Native良好的人机交互体验,又保留了React框架的开发效率。React、...原创 2018-05-31 17:33:09 · 1157 阅读 · 0 评论 -
openGL环境搭建
1.OpenGL 简介OpenGL是一种用于创建实时3D图像的编程接口。OpenGL(全写Open Graphics Library “开放的图形程序接口”)是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。它用于三维图像(二维的亦可),是一个功能强大,调用方便的底层图形库。OpenGL 的发展OpenGL的前身是SGI公司为其图形工作站开发的IRIS GL,为解决其移植性差的缺...原创 2018-05-31 17:29:12 · 1924 阅读 · 0 评论 -
Mark Down简单用法
想用MarkDown写博客所以记录下一些常用的指令###标题 用#号表示1-6号6阶字体 或者在字体下加=== 或者 —- 分别表示h1 和 h2> 标题h1> 标题h2#h1##h2###h3####h4#####h5######h6h1h2h3h4h5h6注:这边=和- 任意数量都可...原创 2018-05-31 16:42:52 · 354 阅读 · 0 评论 -
Mark Down用法
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I...转载 2018-05-31 16:39:34 · 582 阅读 · 0 评论 -
ios xcode9 真机无线调试
条件1.macOS 10.12.4及以上2.Xcode9 Beta 及以上3.ios 11.0及以上配置:首次配置需要数据线连接。根据下图操作 点击Connect via network即可 之后在同一网段下不需要再配置...原创 2018-06-05 15:43:22 · 460 阅读 · 0 评论 -
获取对象属性名及对应值 模型与模型直接数据赋值
//比较懒 最近有时间 研究了下模型与模型直接赋值的方法 此方法不仅适用于模型赋值模型 其还是用于模型赋值 view view赋值view 即对象赋值对象思路1、获取对象属性名2.根据属性名获取key vlaue 并以字典保存3. 要赋值对象一键赋值 (这边是做的简易版 用的系统的 后面会升级下 获取属性类型 规避同名不同型的赋值闪退问题)上代码:import UI原创 2017-06-05 17:59:53 · 689 阅读 · 0 评论 -
设备标识符 uuid udid
在开发过程中,我们经常会被要求获取每个设备的唯一标示,以便后台做相应的处理。我们来看看有哪些方法来获取设备的唯一标示,然后再分析下这些方法的利弊。 具体可以分为如下几种: 1、UUID 2、IDFA 3、IDFV 4、MAC 5、UUID下面我们来具体分析下每种获取方法的利弊1、UDID什么是UDID UDID 「Unique Device Identi转载 2017-05-27 15:06:32 · 954 阅读 · 0 评论 -
摄像机权限判断问题包括第一次允许判断
最近做了一个视频功能涉及到摄像机和麦克风的权限问题所以写一个权限判断下面贴代码 以下是摄像机 和 麦克风的权限 设置 分别为 第一次使用的情况 和 以后每次使用时候 设备的检测情况 func authStatus() { let videoType =AVCaptureDevice.authorizationSt原创 2017-03-20 16:35:53 · 1457 阅读 · 0 评论 -
Swift encode URL
之前遇到过对url编码问题,过滤特殊字符串,这个方法对于oc 来说挺简单的的,代码:OCNSString *encodedString = (NSString *)CFURLCreateStringByAddingPercentEscapes( NULL, (CFStringRef)unen原创 2016-12-27 18:10:05 · 1236 阅读 · 0 评论 -
navigation返回指定的队列页面
导航push的时候页面不会消除而是缓存在导航队列里面,当走完一套流程要返回指定页面时候要在队列里匹配然后返回swift 语法跟oc 有点区别, 上代码:let vcArr = self.navigationController?.viewControllersfor item in vcArr!{//获取队列中指定的viewController的页面原创 2016-12-27 17:57:25 · 384 阅读 · 0 评论 -
label实现首行缩进
用label显示文章的时候要实现首行缩进的问题,但是ios10 ios 9 ios 8这三个版本其中10 和 8 用\t 可以正常显示 但是 9 \t 这个占位符太不明显,所以换一种方法来进行首行缩进。 主要知识点:1.NSMutableParagraphStyle 2.NSMutableAttributedString 上代码/** 设置首行缩进 - parameter原创 2016-12-27 17:43:54 · 1956 阅读 · 0 评论 -
谓词判断字符串 身份证、邮箱手机号、特殊字符等 swift版
这边介绍判断特殊字符的 判断其他的只要改掉正则表达式即可 //判断是否有特殊字符 //获取要判断的字符串 let str =chPWDTextfiled.text //获取正则表达这个是判断有没有特殊字符串 let regex ="^([A-Za-z]|[\原创 2016-07-19 01:16:10 · 598 阅读 · 0 评论 -
设置textfield placeholder属性 swift版
这边简单的设置一下placeholder的字体 //创建属性字典var attributes:[String:AnyObject] =NSMutableDictionary() as! [String:AnyObject] attributes[NSFontAttributeName] =UIFont.systemFontOfSize(13)原创 2016-07-19 01:09:37 · 1425 阅读 · 0 评论 -
NSLayoutConstraint 的系统约束纯代码模式swift
//之前用storyboard拉过约束觉得特别好用,但是并没有改变我纯代码开发的梦想所以简单的写了个例子 //推荐看官方文档详细全面 //一般约束为4个或者以上(label比较特殊最少2个就够了不用设置其宽高 它会根据字体来调整)所以一般代码约束是当场看不出来对错的写的时候要谨慎//下面展示个简单的swift的例子 等熟悉了 会写一个用约束来实现label根据内容变化大小的例子原创 2016-07-28 10:09:50 · 797 阅读 · 0 评论 -
模糊搜索NSPredicate
//数据源@property (nonatomic,strong)NSArray *nameArray;//过滤后的数据源@property (nonatomic,strong)NSMutableArray *result; NSString *filterString =@"text"; NSPredi原创 2016-04-12 21:45:28 · 324 阅读 · 0 评论 -
按键打电话 发短信
在button点击事件里写下[[UIApplicationsharedApplication]openURL:[NSURLURLWithString:[NSStringstringWithFormat:@"tel://%ld",(电话号码)]]];就可以打电话了发短信[[UIApplicationsharedApplica原创 2016-04-08 17:19:11 · 285 阅读 · 0 评论 -
获得沙盒路径NSHomeDirectory
//沙盒路径 NSString *paths = NSHomeDirectory();//沙盒路径 然后进入Documents NSString *path = [NSHomeDirectory()stringByAppendingPathComponent:@"Documents"]; //再从Documents里面创建plist原创 2016-03-14 18:15:22 · 362 阅读 · 0 评论 -
点击背景页面取消键盘
//在页面加载前-(void)loadView{ //将ViewContrller中的View变为UIContrl的对象 UIControl *control = [[UIControl alloc]initWithFrame:[UIScreen mainScreen].bounds]; [self setView:control];原创 2016-03-14 21:30:51 · 286 阅读 · 0 评论 -
将data转换成string
NSData *data = [NSData data];//将NSData转换成NSString NSString *resultStr = [[NSStringalloc]initWithData:dataencoding:NSUTF8StringEncoding];原创 2016-03-25 09:48:08 · 873 阅读 · 0 评论 -
viewWithTag简单用法 寻找视图中特定的子视图
1.原理在创建控件时候设置特定的tag ,viewWithTag 会从self.view 逐级往下搜索找到对应的tag 并返回控件对应的类型 ,搜索不到返回nil。创建viewfor (int i = 0; i {//row and column//行int row = i/3;//列int colume = i%3;//创建子视图UIIma原创 2016-03-22 20:49:30 · 1079 阅读 · 0 评论 -
计算程序运行的某一段时间
//创建时间一 NSDate *date1 = [NSDatedate]; /*代码段*/ //创建时间二 NSDate *date2 = [NSDatedate]; //计算两个时间的间隔 NSTimeInterval interval = [date2 timeIntervalSinceDa原创 2016-03-22 19:23:21 · 295 阅读 · 0 评论