ios开发
文章平均质量分 70
WrQx99
一个忠实的程序猿 热爱代码 就像爱自己的老婆一样 希望研究新的技术和分享技术
n2wftbw3
展开
-
IOS数据类型及其所有修饰符的使用规则
IOS数据类型大致可分为以下几种: 1.基本数据类型:Int BOOL Float等一般用assign修复修饰 2.普通引用类型:NSObject以及我们自定义的普通对象用strong修饰 3.特殊引用类型:NSString,NSArray,NSDictionary,NSSet等一帮用copy修饰 4.UIView及其子类类型:修饰符用weak修饰 5.原创 2017-05-03 17:09:20 · 1091 阅读 · 0 评论 -
IOS 宏(define),变量 ,常量(const)那些事儿
宏和常量原创 2017-05-19 14:55:09 · 893 阅读 · 0 评论 -
Masonry介绍与使用实践(快速上手Autolayout)-让IOS自动化相对布局更简单
Masonry转载 2017-06-09 14:52:55 · 829 阅读 · 0 评论 -
Block全解
Block:带有自动变量(局部变量)的匿名函数。它是C语言的扩充功能。之所以是拓展,是因为C语言不允许存在这样匿名函数。1.1 匿名函数匿名函数是指不带函数名称函数。C语言中,函数是怎样的呢?类似这样:int func(int count);调用的时候:int result = func(10);func就是它的函数名。也可以通过指针调用函数,看起来没用到函数名:int result...原创 2019-01-11 13:59:35 · 1323 阅读 · 0 评论 -
几行代码搞定iOS开发引导页
https://github.com/mamaral/OnboardOnboard:一个只用几行代码就可轻松创建 它是一个美丽的和迷人的iOS框架。iOS开发之引导页框架介绍使用1、可以用CocoaPods 下载 pod‘Onboard’2、可以直接下载pro,然后拖进项目使用每个onboarding实例包含两个主要组件 - 背景页和内容页。背景包括静态背景图像/视频,页面控制和跳过...原创 2019-03-29 15:02:39 · 3181 阅读 · 0 评论 -
iOS -录音-音频的拼接剪切以及边录边压缩转码
总体内容1、录音实现2、录音的编辑 (拼接音频:可以设置多段,音频的剪切:按照时间段剪切)3、lame静态库进行压缩转码一、录音实现1.1、导入 AVFoundation 框架,多媒体的处理, 基本上都使用这个框架#import <AVFoundation/AVFoundation.h>1.2、使用 AVAudioRecorder 进行录音,定义一个JKAudioTool...原创 2019-03-27 16:02:48 · 1278 阅读 · 0 评论 -
iOS load和initialize的区别
可能有些童鞋还不清楚load和initialize的区别,下面简单说一下:首先说一下 + initialize 方法:苹果官方对这个方法有这样的一段描述:这个方法会在 第一次初始化这个类之前 被调用,我们用它来初始化静态变量.initialize方法的调用时机,当向该类发送第一个消息(一般是类消息首先调用,常见的是alloc)的时候,先调用类中的,再调用类别中的(类别中如果有重写);如果该类只...原创 2019-03-27 17:49:30 · 260 阅读 · 0 评论 -
简约直接好用的正则表达式
最佳解决思路至少八个字符,至少一个字母和一个数字:“^(?=.[A-Za-z])(?=.\d)[A-Za-z\d]{8,}$”至少八个字符,至少一个字母,一个数字和一个特殊字符:“^(?=.[A-Za-z])(?=.\d)(?=.[@@@!%#?&])[A-Za-z\d@@@!%*#?&]{8,}$”最少八个字符,至少一个大写字母,一个小写字母和一个数字:“^(?=.[...原创 2019-05-22 15:19:08 · 494 阅读 · 0 评论 -
CGContextRef详解
1.1背景知识Graphics Context是图形上下文,可以将其理解为一块画布,我们可以在上面进行绘画操作,绘制完成后,将画布放到我们的view中显示即可,view看作是一个画框.Quartz提供了以下几种类型的Graphics Context:Bitmap Graphics ContextPDF Graphics ContextWindow Graphics ContextLay...原创 2019-05-23 10:03:19 · 863 阅读 · 0 评论 -
Swift open public等修饰符详解
swift 中关于open ,public ,internal,fileprivate,private 修饰的说明open:用open修饰的类可以在本某块(sdk),或者其他引入本模块的(sdk,module)继承,如果是修饰属性的话可以被此模块或引入了此某块(sdk)的模块(sdk)所重写public:类用public(或级别更加等级更低的约束(如private等))修饰后只能在本模块(...原创 2019-05-30 17:25:45 · 7585 阅读 · 0 评论 -
Flutter路由之Navigator详解
含义:Navigator 继承自 StatefulWidget,它也是小组件,它有很多相关静态函数,可以帮我们达到页面跳转和数据交互的功能:push 将设置的router信息推送到Navigator上,实现页面跳转。of 主要是获取 Navigator最近实例的好状态。pop 导航到新页面,或者返回到上个页面。canPop 判断是否可以导航到新页面maybePop 可能会导航到新页面...原创 2019-05-28 10:20:07 · 6071 阅读 · 0 评论 -
Flutter之StatelessWidget和StatefulWidget的详细使用
状态是在构建widget时可以同步读取的信息,或者在widget的生命周期中可能更改的信息,在Flutter中如果要管理状态需要用到 StatefulWidget。什么是StatelessWidget?Flutter中的StatelessWidget是一个不需要状态更改的widget - 它没有要管理的内部状态。当您描述的用户界面部分不依赖于对象本身中的配置信息以及widget的BuildC...原创 2019-05-28 10:42:13 · 4421 阅读 · 0 评论 -
NSRunLoop是什么
NSRunLoop其实它比较像Android的Looper每个线程中都有自己的Looper,只是主线程及UI不用自己创建系统已经帮我们创建好了。 而 NSRunLoop 就是它寄宿线程的 监督者 ,负责24小时监督它的 宿主 线程的一举一动。 一.作用 1.程序运行一直接受用户输入 2.决定何时处理何种Event 3.MessageQueue 二.组成原创 2017-04-27 14:47:29 · 374 阅读 · 0 评论 -
UIWindow 史上最详细的介绍
UIWindow原创 2017-05-17 09:16:45 · 2802 阅读 · 0 评论 -
NSBundle的使用精解
NSBundle在IOS中跟APP是一一对应的,一个程序APP只会有一个mainBundle,但你可以创建n个自定义的CustomBundle,但是他们还是在程序mainBundle的目录下的,这是为什么呢,这要从NSBundle是什么,是干什么的说起。NSBundle说白了就是一个文件,一个文件目录,里面包含了我们APP的所有的资源,比如图片,音频,txt,nib等所有的资源,他就是IOS的资源管原创 2017-05-04 14:21:02 · 555 阅读 · 0 评论 -
IOS 底层封装Block动画的原理解析
解析这个之前我们首先要先了解两个知识点:1.UIView和CALayer的关系 UIView其实内部并没有我们想象的那么强大,他只是负责展示和响应交互事件的,而真正的图形绘制工作,全部是CALayer来完成的,其实CALayer并不属于UIKit架构,而是属于QuartzCore架构,他是一个专门负责图形绘制的工具类,而且是完全跨IOS和OS X平台的。我们之所以感觉不到CALayer的这个功能,原创 2017-05-05 10:23:10 · 858 阅读 · 0 评论 -
IOS 设备信息和系统信息获取大全
-(void)deviceInfos{NSDictionary *infoDictionary = [[NSBundle mainBundle] infoDictionary];// app名称NSString *app_Name = [infoDictionary objectForKey:@"CFBundleDisplayName"];// app版本NSString *app_Versi原创 2017-05-24 11:31:07 · 1175 阅读 · 0 评论 -
史上最全最细最直接解析IOS事件传递机制
IOS系统中只有继承了UIResponder类,也就是说只有UIResponder的子类才能处理IOS用户交互的各种事件。 这是因为UIResponder有一下几个方法://一根或者多根手指开始触摸view,系统会自动调用view的下面方法 1. - (void)touchesBegan:(NSSet )touches withEvent:(UIEvent )event // 一根或者多根原创 2017-05-05 15:37:48 · 319 阅读 · 0 评论 -
iOS 从0到1搭建高可用App框架
**最近在搭建新项目的iOS框架,一直在思考如何才能搭建出高可用App框架,能否避免后期因为代码质量问题的重构。以前接手过许多“烂代码”,架构松散,底层混乱,缺少规范,导致团队开发时代码风格迥异,清晰的项目结构和良好的代码规范是保证产品质量的关键,下面分享一下我的架构思路。 架构图:**架构原则:易读性、易维护性、易扩展性。 一、思考做好一件事,花在思考上的时间应该多于执行。首先根据产品需求和设原创 2017-05-25 14:15:00 · 361 阅读 · 0 评论 -
从UIWebView到WKWebView
8.0之前都是UIWebView,以后苹果官方鼓励用WKWebView,本人建议也是用WKWebView,因为除了功能更加强大,性能和内存都会好很多,网上也有兼容两者的三方比如IMYWebView等。1.UIWebView:@interface QXWebViewController ()@property (weak, nonatomic) IBOutlet UILabel *lable;@pro原创 2017-05-25 17:27:43 · 1659 阅读 · 0 评论 -
IOS开发国际化详述
所谓开发国际化,就是指支持多种语言,用户选择哪种语言就显示哪种语言,然后相应的UI也可能有所改变。IOS APP国际化的第一步就是设置Project-info-Loacalizations 点击➕号选择你要支持的语言,然后在下面的弹框中选择finish下一步就是创建Localizable.strings 一定要叫这个名字,创建成功以后,然后向里添加支持语言的相应的Localizable.string原创 2017-05-04 11:21:10 · 349 阅读 · 0 评论 -
IOS纯代码实现AutoLayout适配多屏幕
关于AutoLayout,最早从iOS6开始引入使用。主要功能是使用约束,对视图进行相对布局,以适应不同屏尺的变换。网上大量的资料都在介绍xib和storyboard,如何使用AutoLayout,说纯代码使用AutoLayout进行UI布局的越来越少。对于我这个习惯了代码UI布局的人,写个备忘:AutoLayout是什么? 使用一句Apple的官方定义的话 AutoLayout是一种基于约原创 2017-05-26 09:54:09 · 1935 阅读 · 0 评论 -
UISegmentedControl使用最详细的解析
初始化的方法//一次性初始化多个control,items可以是图片或者是文字array,系统会自动控制每个单元的大小 //也可通过正常View的初始化进行 - (instancetype)initWithItems:(NSArray *)items;事件添加//通过UIControl的方法来设置,当改变segments的时候通过事件UIControlEventValueChanged,原创 2017-05-16 14:07:42 · 942 阅读 · 0 评论 -
全面解析IOS应用启动都做了些什么
其实IOS一个程序APP的入口就是我们程序的main文件里面的main函数。 int main(int argc, char *argv[]){@autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));}}UIApplicationMain函数是程原创 2017-05-08 14:25:06 · 514 阅读 · 0 评论 -
全面解析IOS UIApplication的工作职责
UIApplication其实就代表着一个IOS程序APP,当一个APP完全启动后就是程序的入口UIApplicationMain()函数启动成功后,就开启了一个主循环生成UIApplication单例,只要这个APP在运行这个主循环就在运行,也就是UIApplicationg都在运行。 那么UIApplication到底是做了哪些工作呢,下面就是UIApplication(或 者子类)对象的职责原创 2017-05-08 14:39:20 · 335 阅读 · 0 评论 -
最详细的IOS NSNotification通知解析
太多理论性的东西就不说了,就说一个疑惑,三个个主意点。一个疑惑就是我们在UIViewController中注册的通知观察者,不需要我们在UIViewController中手动移除,系统也会帮助我们自动移除,如果需要验证这个问题,你只需要扩展UINotificationCenter然后重写它的removeObsever:函数就可。三个注意点:1.我们如果要想移除通知观察者一定要指定特定的通知名字,要么原创 2017-05-08 17:31:51 · 667 阅读 · 0 评论 -
Swift 与 Kotlin 的简单对比
一位国外的程序员认为 Swift 的语法与 Kotlin 相似,并整理了一些 Swift 和 Kotlin 的对比,下面是一些例子,大家不妨也看看。BASICSHello WorldSwiftprint(“Hello, world!”)Kotlinprintln(“Hello, world!”)变量和常量Swiftvar myVariable = 42myVariable = ...转载 2019-05-31 16:13:13 · 842 阅读 · 1 评论