![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ios小白
文章平均质量分 61
自学ios
一颗程序媛0915想上岸
越努力,越幸运……
展开
-
圆型进度条UI
外部给个百分比 更新圆环的进度 xib创建了view注意将view的响应事件去掉 因为盖在了原来的view上原创 2022-05-09 16:32:07 · 471 阅读 · 0 评论 -
JXCategoryTitleView的使用
最近写项目,遇到了一个vc下面有多个vc 指示器可以点击切换,也可也左右滑动进行切换,解除了JXCategoryTitleView 感觉很好用;一般要求vc遵循JXCategoryViewDelegate、JXCategoryListContainerViewDelegate、原创 2021-11-11 18:22:01 · 4492 阅读 · 0 评论 -
《Objective-C高级编程:iOS与OS X多线程和内存管理》 一 Blocks模式&GCD
一、Blocks摘要Blocks:带有自动变量(局部变量)的匿名函数。匿名函数:不带有名称的函数。int func(int cout); //声明名称为func的函数int result = func(10); // 调用该函数,必须使用该函数的名称// 若像下面这样,使用函数指针来代替直接调用函数,那么不知道函数名也可调用int result = (*funptr)(10);// 但使用函数指针也仍需知道函数名称,在赋值给函数指针时,若不使用想赋值的函数的名称,就无法取得该函数的地址原创 2021-02-18 17:20:57 · 648 阅读 · 4 评论 -
《Objective-C高级编程:iOS与OS X多线程和内存管理》 一 自动引用计数
一、自动引用计数1.1 内存管理的思考方式对象操作与objective-c 方法的对应 对象操作 Object-C 方法 生成并持有对象 alloc、new、copy、mutableCopy 持有对象 retain方法 释放对象 release方法 废弃对象 dealloc方法 1.1.1 自己生成的对象,自己持有使用以下名称开头的方法一位着自己生成的对象只有自己持有: alloc |new | copy |mut...原创 2021-01-05 16:28:35 · 327 阅读 · 0 评论 -
时序图
一、时序图简介(Brief introduction)时序图(Sequence Diagram)是显示对象之间交互的图,这些对象是按时间顺序排列的。 顺序图中显示的是参与交互的对象及其对象之间消息交互的顺序。时序图中包括的建模元素主要有:对象(Actor)、生命线(Lifeline)、控制焦点(Focus of control)、消息(Message)等等。二、时序图元素(Sequence Diagram Elements)角色(Actor) 系统角色,可...原创 2020-12-15 14:26:32 · 17382 阅读 · 3 评论 -
代理模式
代理模式是一种消息传递方式,一个完整的代理模式包括:委托对象、代理对象和协议。代理主要由三部分组成: 协议:用来指定代理双方可以做什么,必须做什么。 代理:根据指定的协议,完成委托方需要实现的功能。 委托:根据指定的协议,指定代理去完成什么功能。 一个人Person对象,想去买电影票(询问电影票的剩余量,票价等信息),但是由于自己没有空,所以他只能委托一个中介(代理商Agent对象) 帮他去完成这个动作,最后代理商可以把(询问的电影票相关信息) 回馈给Person原创 2020-12-09 16:06:24 · 178 阅读 · 0 评论 -
NSNotification 消息通知的3种方式
Notification Center的概念它是一个单例对象,允许当事件发生时通知一些对象,让对象做出相应反应。它允许我们在低程度耦合的情况下,满足控制器与一个任意的对象进行通信的目的。 这种模式的基本特征是为了让其他的对象能够接收到某种事件传递过来的通知,主要使用通知名称来发送和接收通知。基本上不用考虑其它影响因素,只需要使用同样的通知名称,监听该通知的对象(即观察者)再对通知做出反应即可。优势:1.不需要编写多少代码,实现比较简单;2.对于一个发出的通知,多个对象能够做出反应,简原创 2020-12-09 15:50:05 · 706 阅读 · 0 评论 -
ios基础篇(十六)—— 网络之sockct
一、网络基本概念客户端:应用 C/S B/S 服务器:为客户端提供服务、数据、资源的机器 请求:客户端向服务器索取数据 响应:服务器对客户端的请求作出反应,一般是返回给客户端数据 服务器 内网服务器 外网服务器 本地测试服务器 二、URL准备获取网络上的资源,首先要了解URL 什么是URL Uniform Resource Locator(统一资源定位符) 网络中每一个资源都对应唯一的地址—URL URL的基本格式 协议://主机地址:端口号/路...原创 2020-11-18 17:09:31 · 455 阅读 · 0 评论 -
ios基础篇(十五)—— SDWebImage
一、SDWebImage介绍什么是SDWebImage iOS中著名的牛逼的网络图片处理框架 包含的功能:图片下载、图片缓存、下载进度监听、gif处理等等 用法极其简单,功能十分强大,大大提高了网络图片的处理效率 国内超过90%的iOS项目都有它的影子 项目地址 https://github.com/rs/SDWebImage 下载SDWebImage 查看文档,SDWebImage的基本使用 导入UIImageView+WebCache头文件 下载图片,并显示在ima原创 2020-11-10 10:02:44 · 490 阅读 · 0 评论 -
ios基础篇(十四)—— 操作依赖、操作缓存池
一、NSOperation VS GCDGCD GCD是iOS4.0 推出的,主要针对多核cpu做了优化,是C语言的技术 GCD是将任务(block)添加到队列(串行/并行/全局/主队列),并且以同步/异步的方式执行任务的函数 GCD提供了一些NSOperation不具备的功能 一次性执行 延迟执行 调度组 NSOperation NSOperation是iOS2.0推出的,iOS4之后重写了NSOperation NSOperation将操作(异步的任务)添原创 2020-11-06 16:35:13 · 1196 阅读 · 4 评论 -
ios基础篇(十三)—— 调度组、NSOperationQueue
一、调度组有时候需要在多个异步任务都执行完成之后继续做某些事情,比如下载歌曲,等所有的歌曲都下载完毕之后 转到 主线程提示用户//1 全局队列 dispatch_queue_t queue = dispatch_get_global_queue(0, 0); //2 调度组 dispatch_group_t group = dispatch_group_create(); //3 添加任务 //把任务添加到队列,等任务执行完成之后通知调度组 dispa...原创 2020-11-06 16:35:00 · 832 阅读 · 1 评论 -
ios基础篇(十二)—— 消息循环、GCD、任务和队列、串行、并行、Barrier阻塞、延时操作、一次性执行
一、消息循环什么是消息循环 Runloop就是消息循环,每一个线程内部都有一个消息循环 只有主线程的消息循环默认开启,子线程的消息循环默认不开启 消息循环的目的 保证程序不退出 负责处理输入事件 如果没有事件发生,会让程序进入休眠状态 1.1 消息循环-输入事件输入事件 Runloop接收输入事件来自两种不同的来源:输入源(input source)和定时源(timer source) input for sources such as mouse and keyb.原创 2020-11-06 16:34:45 · 511 阅读 · 0 评论 -
ios基础篇(十一)—— 同步/异步、进程/线程、pthread、线程状态、线程同步、自动释放池
多线程一、同步/异步1、1同步我们之前写程序的时候都是从上到下,从左到右,代码执行顺序 1个人执行多个任务,也是依次执行,1个人同一时间执行1个任务1.2异步多个人可以同时执行多个任务二、进程/线程2.1进程进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用的且受保护的内存空间内 通过“活动监视器”可以查看Mac系统中所开启的进程2.2线程1个进程有多个线程组成(1个进程至少要有1个线程) 线程是进程的基本执行单元,一个进程的所有原创 2020-10-30 18:20:23 · 504 阅读 · 0 评论 -
ios基础篇(十.一)—— 动画
CADisplayLinkCADisplayLink是一种以屏幕刷新频率触发的时钟机制,每秒钟执行大约60次左右CADisplayLink是一个计时器,可以使绘图代码与视图的刷新频率保持同步,而NSTimer无法确保计时器实际被触发的准确时间使用方法:定义CADisplayLink并制定触发调用方法将显示链接添加到主运行循环队列核心动画Core Animation,中文翻译为核心动画,它是一组非常强大的动画处理API,使用它能做出非常炫丽的动画效果,而且往往是事半功倍。也就是原创 2020-10-26 10:33:32 · 304 阅读 · 1 评论 -
ios基础篇(十)—— CALayer基本属性
在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView 其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层 在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过UIView的layer属性可以访问这个层 @property(nonatomic,readonly,retain) CALayer *layer; 当UIView需要显示到屏幕上时,会调用drawRect:方原创 2020-10-19 09:56:40 · 497 阅读 · 1 评论 -
ios基础篇(九)—— 手势识别
UIGestureRecognizer:手势识别器 能轻松识别用户在某个view上面做的一些常见手势UIGestureRecognizer 是一个抽象类,定义了所有手势的基本行为,使用它的子类才能处理具体的手势UIPanGestureRecognizer(拖动)UIPinchGestureRecognizer(捏合)UIRotationGestureRecognizer(旋转)UITapGestureRecognizer(点按)敲击UILongPressGestureRecogni原创 2020-10-17 16:33:39 · 411 阅读 · 0 评论 -
ios基础篇(八)—— iOS触摸事件
iOS中的事件iOS事件中分为三大类,触摸事件,加速器事件,远程控制事件。响应者对象在iOS 中 不是任何对象都是能处理事件的,只有继承于UIResponder的对象才能接受并且处理事件,这就我们常说的“响应者”UIApplication;UIView;UIViewController;都继承了UIRespoder,因此他们都是响应者。UIRespoderUIRespoder对象内部提供了一些方法来处理事件。视图点击事件点击开始- (void)touchesBeg...原创 2020-10-16 11:20:04 · 1256 阅读 · 1 评论 -
ios基础篇(七)—— 矩阵操作、图形上下文栈、Quartz2D的内存管理、绘制、图片裁剪
一、矩阵操作 - 仿射变换缩放 void CGContextScaleCTM(CGContextRef c, CGFloat sx, CGFloat sy) 旋转 void CGContextRotateCTM(CGContextRef c, CGFloat angle) 平移 void CGContextTranslateCTM(CGContextRef c, CGFloat tx, CGFloat ty)#import "HMView.h"@implementation HMView.原创 2020-10-15 17:26:45 · 439 阅读 · 0 评论 -
ios基础篇(六)—— Quartz2D 饼状图、柱状图
一、绘制“饼状图” 思路:构建数据,NSArray *data = @[@30, @15, @5, @17, @3, @10, @20];。 根据数据个数绘制“扇形”(弧)注意: 每个弧的起始、结束弧度都是不一样的 每次绘制完毕一个弧以后都要重新设置下一次的起始弧度为当前的结束弧度 本次绘制的结束弧度,为起始弧度+本次的弧度如果画完圆弧之后直接fill填充 则先关闭路径,后直接填充 画扇形,需加一个连往圆心的线 填充时 先自动关闭路径,后填充...原创 2020-10-14 20:04:54 · 358 阅读 · 0 评论 -
ios基础篇(五)—— Quartz2D
一、Quartz2DQuartz 2D是一个二维绘图引擎,同时支持iOS和Mac OS X系统(跨平台,纯 C 语言的)。包含在 Core Graphics 框架中。Quartz 2D能完成的工作绘制图形 : 线条\三角形\矩形\圆\弧等绘制文字 微博图片上的水印 绘制\生成图片(图像) 读取\生成PDF 截图\裁剪图片 方型图片->圆型 四个角是透明的 自定义UI控件注意:Quartz2D 是苹果官方的二维绘图引擎,同时支持 iOS 和 Mac OS X 系统。 Co原创 2020-10-14 10:29:43 · 642 阅读 · 0 评论 -
小项目(一)—— QQ框架 UITabBarController&&静态单元格、Modal
UITabBarController跟UINavigationController类似,UITabBarController也可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型例子就是QQ、微信等应用UITabBarController的简单使用UITabBarController的使用步骤初始化UITabBarController 设置UIWindow的rootViewController为UITabBarController 根据具体情况,通过addChildViewCon原创 2020-10-12 15:41:37 · 257 阅读 · 2 评论 -
ios基础篇(四)—— Foundation框架
凡是带有Mutable字样的类型,都是可变的,如果存在相对应的没有Mutable字样的类型,都是不可变的,一旦初始化之后,就不可以再修改。一、NSString和NSMutableString1.1 字符串转数字 integerValue1.2 字符串常用方法:[NSString stringWithFormat:@”格式字符串”, 参数…]1.3 如果要表示:0001之类的数字格式可以使用”%04d”之类的格式字符二、NSNumber2.1 是数字的NS对象的表达形式,如果要把.原创 2020-10-10 17:36:43 · 583 阅读 · 0 评论 -
ios基础篇(五)—— UIDatePicker && UIPickerView、UIPageControl、UIActivityIndicatorView
一、UIDatePicker&& UIPickerView UIDatePicker(日期选择器)只有这四种模式:typedef NS_ENUM(NSInteger, UIDatePickerMode) { UIDatePickerModeTime, // Displays hour, minute, and optionally AM/PM designation depending on the locale setting (e.g. 6 |...原创 2020-10-10 14:33:26 · 411 阅读 · 2 评论 -
ios基础篇(三)—— UITextField、UITextView
0.enablesReturnKeyAutomatically默认为No,如果设置为Yes,文本框中没有输入任何字符的话,右下角的返回按钮是disabled的。1.borderStyle设置边框样式,只有设置了才会显示边框样式 text.borderStyle = UITextBorderStyleRoundedRect;typedef enum { UITextBorderStyleNone, UITextBorderStyleLine, UITe...原创 2020-10-09 20:52:21 · 1648 阅读 · 0 评论 -
ios基础篇(六)—— 代理协议消息传递机制、 NSTimer计时器
代理协议机制在iOS开发中,是非常常用的一种消息传递机制,主要用于子视图向父视图传递数据,代理协议是单向消息传递。要使用代理协议,需要以下几个步骤: 1.子视图控制器中需要做如下操作:1.1在子视图控制器中定义协议,并且定义若干协议方法,注意:只有方法,而没有方法的具体实现。协议的名称通常是子视图控制器的类名+Delegate@protocol GameViewControllerDelegate <NSObject>- (void)gameOverDeliverTimer.原创 2020-10-09 17:18:08 · 138 阅读 · 0 评论 -
ios基础篇(二)—— UITableView
基本 API 解释以及用法 数据源 UITableViewDataSource 代理 UITableViewDelegate UITableViewCell 一些常用操作 UITableView 进阶 性能优化 优雅的使用 UITableView 之链式编程 UITableView 相关的开源库 MJRefresh 上拉下拉刷新组件 UITableView+FDTemplateLayoutCell 自动计算行高 SWTableViewCell Cell左右滑动操作原创 2020-10-09 16:44:17 · 859 阅读 · 0 评论 -
UI基本控件(五):UIPikerView
UIPickerView是使用旋转轮或类似老虎机来显示一组或多组值的视图。时钟应用中设置时间就是通过UIPickerView来实现的。 1.numberOfComponents:返回UIPickerView当前的列数NSIntegernum = _pickerView.numberOfComponents;NSLog( @"%d", num);2.- (NSInteger)numberOfRowsInComponent:(NSInteger)component;返...原创 2020-10-09 15:48:28 · 782 阅读 · 0 评论 -
ios基础篇(一)—— UIImagePickerController类
UIImagePickerController简述:UIImagePickerController 类是获取选择图片和视频的用户接口,我们可以用UIImagePickerController选择我们所需要的图片和视频。注:UIImagePickerController不能够任意定制,也不可以继承生成子类。一、UIImagePickerController的属性:1、sourceType设置UIImagePicker照片源类型,默认有3种。照片源类型指定使用模式(照相机/相册/照片库)原创 2020-10-09 15:08:14 · 5187 阅读 · 0 评论 -
UI基本控件(四):UIImageView、UILabel、UIControl
一、UIImageView属性1.Image 设置图片,默认显示UIImageView*_imageView = [[UIImageViewalloc]init];_imageView.image= [UIImageimageNamed:@"me.png"];2.highlightedImage 设置高亮状态下显示的图片_imageView.highlightedImage= [UIImageimageNamed:@"other.png"];3.animati...原创 2020-10-09 11:04:16 · 440 阅读 · 0 评论 -
UI基本控件(三):UISlide、UISwitch、UIView
一、UISlide属性minimumValue: 当值可以改变时,滑块可以滑动到最小位置的值,默认为0.0_slider.minimumValue= 10.0;maximumValue: 当值可以改变时,滑块可以滑动到最大位置的值,默认为1.0_slider.maximumValue= 100.0;continuous: 如果设置YES,在拖动滑块的任何时候,滑块的值都会改变。默认设置为YES[_slidersetContinuous:NO]; // 在滑...原创 2020-10-09 10:41:50 · 953 阅读 · 0 评论 -
UI基本控件(二):UIButton
1.UIButton状态:UIControlStateNormal // 正常状态 UIControlStateHighlighted // 高亮状态 UIControlStateDisabled // 禁用状态 UIControlStateSelected // 选中状态 UIControlStateApplication // UIControlStateReserved //...原创 2020-10-09 10:20:49 · 1540 阅读 · 0 评论 -
UI基本控件(一):UIScrollView
一、UIScrollView1.contentOffset->默认CGPointZero,用来设置scrollView的滚动偏移量。// 设置scrollView的滚动偏移量scrollView.contentOffset= CGPointMake(0, 200);2.contentSize- >默认CGSizeZero,用来设置scrollView的滚动范围。// 设置scrollView的滚动范围scrollView.content...原创 2020-10-09 10:11:29 · 4067 阅读 · 1 评论