- 博客(109)
- 收藏
- 关注

原创 iOS的iPhone屏幕尺寸、分辨率、PPI和使用123倍图
手机型号 屏幕尺寸 屏幕密度 开发尺寸 像素尺寸 倍图 5/5S/5C 4.0英寸 326ppi 320*568 pt 640*1136 px @2X 6/6S/7/8 4.7英寸 326ppi 375*667 pt 750*1334 px @2X 6+/6S+/7+/8+ 5.5英寸 401p...
2018-06-28 11:08:45
1586

原创 UIButton 的图文混排
逻辑思路: button设置图片和文字后后再设置titleEdgeInsets属性和 imageEdgeInsets属性实现button的上图下文,上文下图,左图右文,右图左文的重新排列(自由设置图文间距)UIEdgInsets官方解释: Edge inset values are applied to a rectangle to shrink or expand the area repr
2016-07-07 18:41:48
1003

原创 iOS横屏竖屏设置
公司App里面有个需求,即所有界面都是竖屏,且不允许横屏切换,唯独有一个播放视频的界面允许横屏,大家都知道视频播放适配最大的播放屏幕那样是最好的。从网上多方查找资料,总结如下:最终,根据此需求处理如下: 首先,确保App本身应该允许转屏切换: 我的App里面UITabBarController是根视图控制器,所以首先创建一个UITabBarController的子类,并设定允许转屏:
2016-05-10 17:49:50
4530
原创 自定义密码输入框ZCPasswordTextField
ZCPasswordTextField平时开发常用的几种密码输入框样式,如果有需要可以自行修改或者再次封装处理,如果发现有问题,请issue,谢谢.源码地址安装方式直接使用,git clone之后,把相关文件资源拉入到自己的项目中使用方式到达指定长度后触发UITextFieldDelegate代理事件停止接收键盘输入 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)ran
2021-03-09 22:02:32
312
原创 iOS开发规范
iOS代码编写规范Git的使用iOS进阶开发目的了利于项目维护以及规范开发,促进成员之间Code Review的效率,故提出以下开发规范,如有更好的建议,欢迎提出 (qq:2807425310@qq.com)。命名规范代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。正确的英文拼写和语法可以让阅读者易于理解,避免歧义。*注意:即使纯拼音命名方式也要避免采...
2019-04-27 16:01:07
234
原创 APNs推送
APNs对于苹果的 iOS 系统来说,它有自建的官方推送服务 APNS(Apple Push Notification service)。当我们的手机处于开机状态并且联网(有些平台称为用户上线)时,iOS 系统内置的一个推送服务便会一直处于运行的状态,并与 APNS 服务器保持长连接,随时准备接收APNS服务器的推送消息。DeviceToken世界上的 iOS 设备那么多,APNS 服务器怎...
2019-03-28 19:44:26
374
转载 intrinsicContentSize
https://blog.youkuaiyun.com/hard_man/article/details/50888377
2019-03-25 17:16:42
559
原创 IOS Quartz 2D 学习
翻译自http://www.techotopia.com/index.php/An_iPhone_Graphics_Drawing_Tutorial_using_Quartz_2D画矩形方框 CGContextRef context = UIGraphicsGetCurrentContext(); CGContextSetRGBStrokeColor(context, 0.9, ...
2019-03-21 18:44:58
159
转载 如何在UIScrollView的xib上添加子控件并添加AutoLayout约束
引言自从苹果推出了autoLayout之后,作为开发者,深深的体验到了他的便捷之处,再也不用为适配不同屏幕布局UI而烦恼,我们仅仅需要和类关联一个xib文件,想上面放置我们需要的控件xib,并打好其相对于父视图以及同级视图的约束关系,这样我们就做好了不同屏幕的适配。但是奇怪的是UIScrollView上添加子控件,和之前的一样的操作,报的错却很吓人,那是为什么呢?原因分析因为UIScroll...
2019-02-20 12:07:26
425
原创 Swift中的问号?和感叹号!
目录可选项可选项let Designated initializers are the primary initializers for a class. A designated initializer fully initializes all properties introduced by that class and calls an appropriate superclas...
2018-11-25 10:12:33
818
原创 SFSafariViewController
这里写自定义目录标题OverViewAPI文档简单介绍,一个和系统浏览器safari在外观上基本相同,并且共享cookie的视图控制器一些初始化方法几个属性几个可选代理引用其他类使用方法OverView2015年, Apple 在 SFSafariViewController 中导入了许多振奋人心的新改变。许多使用者想要在他们的App 中使用完整的Safari 浏览器功能,但是又不希望强制使用...
2018-11-21 11:11:42
2131
转载 iOS 绘制虚线的三种方法
总结了三种绘制虚线的方法:方法一:通过Quartz 2D 在 UIView drawRect:方法进行绘制虚线- (void)drawRect:(CGRect)rect { // 可以通过 setNeedsDisplay 方法调用 drawRect: // Drawing code CGContextRef context =UIGraphicsGetCurren...
2018-09-07 15:57:43
1765
原创 设计模式-简单工厂模式+反射机制
写在前面前面我们了解了简单工厂模式与工厂模式各自的优缺点,那么有没有一种设计思路可以能扩展新的运算模式不用去直接修改工具类不用给新的扩展类新增工具类当然是可以的,这就是本文的价值了解OC层面的反射机制Objective-C 反射篇 Objective-C语言中的OC对象,都继承自NSObject类。这个类为我们提供了一些基础的方法和协议,我们可以直接调用从这个类继承过...
2018-08-14 19:40:55
393
原创 设计模式-工厂模式
写在前面这一篇主要是对比,工厂方法模式比简单工厂模式好在哪里?为什么要用这个模式?这个模式的精髓在哪里?简单工厂模式以计算器为例,UML类图如下: 加减乘除运算都是继承自基类运算类,然后工厂类来调用这些运算,创建相应的对象,从而进行操作,oc代码如下:抽象运算类:#import <Foundation/Foundation.h>@interface Z...
2018-08-14 18:52:43
262
原创 消除Xcode警告
在iOS开发过程中, 我们可能会碰到一些系统方法弃用, weak、循环引用、不能执行之类的警告。 有代码洁癖的孩子们很想消除他们, 今天就让我们来一次Fuck 警告!!首先学会基本的语句#pragma clang diagnostic push#pragma clang diagnostic ignored "-Wdeprecated-declarations"这里写出现警告的代码...
2018-08-14 14:36:21
788
原创 iOS10以后 openURL方法跳转到设置界面
问题在iOS10之前,跳转到系统设置界面的某个指定界面的方式如下://打开定位服务界面NSURL*url=[NSURL URLWithString:@"prefs:root=Privacy&path=LOCATION"];if ([[UIApplication sharedApplication] canOpenURL:url]) { [[UIApplication...
2018-07-11 16:52:40
2345
原创 相机拍照界面取景框
需求项目中需要拍名片,为了尽可能多的去除其他信息,且宽高比更贴近名片真实比例,需要自定义一个取景框,只拍摄取景框内的画面。实现这个个性化需求比较强,在系统的UIImagePickController基础上修改方案被pass掉,只能通过自己实现拍照功能。 https://github.com/LemonChao/ApertureCamera ...
2018-07-11 16:37:51
6070
原创 UniversalLink通用链接
什么是Universal LinkiOS9 新引入的一个功能,是通过传统HTTP链接来启动App的技术,可以使用相同的网址打开网站和App。通过唯一的网址,就可以链接到App中具体的视图,不需要特殊的scheme。如果用户没有安装App则链接到对应的普通网页。无缝连接Web-App ,备忘录-App,信息-App之间的跳转。 在iOS 9以前,我们从外部启动App都是通过URL Sch...
2018-07-04 17:08:33
1061
原创 presentViewController四种模式
//UIModalTransitionStyleCoverVertical //垂直向上替换, default//UIModalTransitionStyleFlipHorizontal //旋转//UIModalTransitionStyleCrossDissolve 溶解//UIModalTransitionStylePartialCurl //向上部分卷曲picker.modalTr...
2018-06-29 19:10:26
2414
原创 视图的运行时交互模型
每当用户与您的用户界面进行交互时,或者您自己的代码以编程方式更改某些内容时,都会在UIKit内部发生一系列复杂的事件来处理该交互。在该顺序的特定时间点,UIKit会向您的视图类发出呼叫,并让他们有机会代表您的应用程序做出响应。理解这些标注点对于理解视图适合系统的位置非常重要。图1-7显示了以用户触摸屏幕开始并以图形系统更新屏幕内容为响应结束的事件基本顺序。任何程序启动的操作也会发生相同的事件序列。...
2018-06-28 17:49:44
702
原创 系统原生拍照,录像按钮
写在前面个人觉得苹果的拍照按钮设计,以及交互特别美观,于是就打造一个,自定义相机界面的时候能用到概述自己实现的话,两种途径,继承自UIControl 或者 UIButton,白色外环直接绘图就行,内环再加个layer,因为要做动画Talk is cheap , this’s my codetypedef NS_ENUM(NSUInteger, THCaptureBu...
2018-06-22 17:45:40
416
转载 ALAsset/PHAsset 中的图片和视频文件
在微博上出现了越来越多的被标记为 Live 的图片,这种图片是一种动图 LivePhoto,长按之后会进行播放。那么 LivePhoto 是一种什么文件或者格式?其实 LivePhoto 只是一种 iPhone 相册的资源 Asset,并不是一种特殊的动图文件和格式。下面将通过对 PHAsset 的使...
2018-06-21 12:30:07
1523
原创 drawRect:调用周期
一、重绘机制iOS的绘图操作是在UIView类的drawRect方法中完成的,所以如果我们要想在一个UIView中绘图,需要写一个扩展UIView 的类,并重写drawRect方法,在这里进行绘图操作,程序会自动调用此方法进行绘图。 重绘操作仍然在drawRect方法中完成,但是苹果不建议直接调用drawRect方法,当然如果你强直直接调用此方法,当然是没有效果的。苹果要求我们调用UIVi...
2018-06-08 19:06:51
992
原创 Runtime之黑魔法-Method Swizzling
https://blog.youkuaiyun.com/wangyanchang21/article/details/61199865
2018-05-14 16:25:07
182
原创 一些NSArray,NSDictionary,NSSet相关的算法知识
写在前面iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过。只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准确性),还需要了解其中所隐藏的算法知识。在项目当中使用集合类几乎是不可避免的,集合类的使用场景其实可以进行抽象的归类。大多数时候我们需要将若干个对象(object)暂时保存起来,以备后续的...
2018-05-04 15:16:37
236
原创 AFURLSessionManager 设置requestSerializer请求头
应用场景做文件下载,需要在头部添加登陆信息用于后台鉴定权限。跟AFHTTPSessionManager设置请求头有些不一样,如下:(google一下就找到了,结果百度了半天,垃圾百度)AFURLSessionManager *manager = [[AFURLSessionManager alloc] initWithSessionConfiguration:[NSURLSessionCo...
2018-05-04 13:18:36
4828
原创 AutoLayout中的Content Hugging 和 Content Compression Resistance优先级问题
https://blog.youkuaiyun.com/yongyinmg/article/details/39526207https://www.jianshu.com/p/e38157d7b828Content Hugging:阻止自己变大的优先级系数 适用于当父视图足够子视图显示时,哪个控件优先被拉伸Content Compression Resistance:阻止自己变小的优先级系数 适用于当父视图
2018-04-27 17:02:45
200
原创 MJRefresh
FooterMJRefreshFooterMJRefreshBackFooterMJRefreshBackStateFooterMJRefreshBackNormalFooter普通footer,有上拉箭头,上拉超出一段距离,松开后触发MJRefreshBackGifFooterMJRefreshAutoNormalFooter普通footer,...
2018-04-12 11:02:41
434
原创 NSAttributedStringKey解释
NS_ASSUME_NONNULL_BEGIN/************************ Attributes ************************/// Predefined character attributes for text. If the key is not present in the dictionary, it indicates the defa...
2018-03-27 13:05:02
2329
原创 分段控制器
写在前面项目中经常用到分段控制器,网上找的几个用着不是太顺手,细读了两份源码,其实也不难,二来各个项目特色不一样,觉得造个轮子还是有些必要的。沙场点兵所谓的分段控制器无非是顶部选择器跟下面的视图控制器联动。 那么怎么实现这种联动呢。 顶部的选择器可以用collectionView实现,有一下几点好处选中某一个通过代理方法可以方便的执行一些操作把当前选中的item居中动画...
2018-03-24 00:52:20
825
原创 关键帧动画,动画组实现文字效果
拆分动画实现一个动画,有很多种途径。不管是哪种途径,都要分析一下动画由哪几部分组成,然后将这些部分组合起来。 这是一个简单的动画,由两部分组成:缩放动画,字体框架大小的缩放旋转动画,字体放大到最大时,左右旋转,实现抖动效果最后用动画组将这两组动画组合起来就OK了。旋转动画- (void)rotationAnimation { CAKeyframeAn...
2018-03-22 09:06:01
1081
原创 极光远程推送角标控制
角标显示异常接手别人项目发现桌面角标点击可以清零,但是再收到一条远程推送,不是显示1,而是在之前的基数上+1 查看极光API发现:///----------------------------------------------------/// @name Server badge 服务器端 badge 功能///--------------------------------...
2018-03-06 15:16:05
1001
原创 NSString (NSStringPathExtensions)
(NSString )pathWithComponents(NSArray )components 根据components中的元素来构建路径. (NSArray *)pathComponents 解析路径,返回构成路径的各个部分. (NSString *)lastPathComponent 提取路径中的最后一个组成部分 (NSString *)pathExtension ...
2018-02-28 18:41:59
240
原创 WkwebView调节字体大小获取高度
一般新闻阅读类APP都有一个功能是调节字体大小,而这类新闻界面一般是由webVIew来实现的,实际上就是怎么实时调节webView的字体大小。写在前面前后实验过大概有三四种方法,各有各自的优缺点,记录如下,不确保普遍适用,欢迎交流指正。调节字体大小<style type=\"text/css\">
2018-02-07 12:06:45
2605
5
原创 CollectionView多选
写在前面collectionView的多选是个老生常谈的问题了,但是当首次实现的时候还是要注意点什么的。实现多选这俩属性控制这些items是否可以选择,如果是,是否可以同时选择多个。// These properties control whether items can be selected, and if so, whether multiple items can
2018-01-28 00:58:43
1417
原创 css样式大全
字体属性:(font)大小 {font-size: x-large;}(特大) xx-small;(极小) 一般中文用不到,只要用数值就可以,单位:PX、PD样式 {font-style: oblique;}(偏斜体) italic;(斜体) normal;(正常)行高 {line-height: normal;}(正常) 单位:PX、PD、EM粗细 {font-weight: bold;}
2018-01-22 17:07:38
229
原创 UICollectionView didSelectItemAtIndexPath不会触发【待解决】
描述: 视图框架 -keyWindow - -FiltrateView:UIView ,添加点击手势 - - -backgroundView:UIView - - - -UICollectionView, didSelectItemAtIndexPath不会触发 注释掉点击手势didSelectItemAtIndexPath会被触发按照响应者链,点击cel
2018-01-16 17:50:01
4849
原创 证书管理
查看原图刚接触iOS开发的人难免会对苹果的各种证书、配置文件等不甚了解,可能你按照网上的教程一步一步的成功申请了真机调试,但是还是对其中的缘由一知半解。这篇文章就对Certificate、Provisioning Profile等做个总结。 1.概念介绍如果你拥有一个开发者账户的话,在iOS Dev Center打开Certificates, Indentifiers & Profil
2018-01-04 19:26:43
521
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人