IOS
劉胡來
这个作者很懒,什么都没留下…
展开
-
YYModel源码解读
YYModel 是一个非常优秀的数据转模型,模型转字典与JSON串的库。而且代码量非常少。可见作者架构,抽象,对OC理解已经到了一个很高的高度。希望站在巨人的肩膀上有一天自己也能达到。YYModel 库结构类含义YYClassInfo类信息YYModel管理头文件,使用过程中引入这一个即可NSObject+YYModel顶级类添加转换接口,方便进行转换字典数据转换为对象,将如下字典数据映射到相应的模型上,示例代码如下:字典数据:NSDiction原创 2020-08-08 18:14:40 · 514 阅读 · 0 评论 -
YYImage 播放动图原理分析
#一、通常使用动图有以下几种方式GIFGIF是一种位图。位图的大致原理是:图片由许多的像素组成,每一个像素都被指定了一种颜色,这些像素综合起来就构成了图片。GIF采用的是Lempel-Zev-Welch(LZW)压缩算法,最高支持256种颜色。由于这种特性,GIF比较适用于色彩较少的图片,比如卡通造型、公司标志等等。如果碰到需要用真彩色的场合,那么GIF的表现力就有限了。GIF通常会自带一个调色板,里面存放需要用到的各种颜色。在Web运用中,图像的文件量的大小将会明显地影响到下载的速度,因此我们可原创 2020-07-25 20:32:41 · 1547 阅读 · 0 评论 -
Https是如何保证通讯安全的
这个问题困扰了很久,最近看了资料,总结一番,总结不到位的地方还请指出http是明文传输而https加密传输(http的发展历史及各版本的差异,报文头这里就不介绍了,有兴趣的同学自己查阅资料)这是它们最大的区别。那https是如何达到安全传输的呢,这个需要先了解下http与https的osi层次结构(图来源《图解http》)很明显https 是在tcp与http之间添加了一层ssl(Secure Sockets Layer)层,俗称安全套接层SSL释义:请参看这里博文,有详细讲解:https:.原创 2020-05-29 21:00:28 · 807 阅读 · 0 评论 -
IOS自定义键盘(swift/Objc)
效果图自定义键盘的核心思想设置UITextFiled 的InputView切换键盘的思路为重新设置UITextFiled 的InputView然后再调用textFiled?.reloadInputViews()*剩下的就是按键的布局与代理设置了swift版本采用策略模式实现,Objc版本使用常规模式实现swift版本的策略模式实现的角色划分如下:策略管理类–键盘管理类KeyboardMgr通用策略类–键盘基类KeyboardBaseView具体的策略类–数字键盘、随机数字键盘、原创 2020-05-27 15:43:33 · 1127 阅读 · 1 评论 -
IOS 文本滚动标签效果(Objc/Swift)
实现效果实现原理:动画改变文本的y坐标,同时使用把移出父布局的视图立即移到父视图的下方,使用一个临时UIView来交替上下两个视图,达到利用的效果实现核心代码如下:Object-c版本:#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGINtypedef void(^OnClickListener)(NSString* title);@interface ScrollLabel : UILabel@property(nonatom原创 2020-05-21 20:17:50 · 958 阅读 · 0 评论 -
IOS-使用UICollectionView+UIScrollView实现悬停、导航条跟随列表滚动滑动
本例子主要实现2个主要功能悬停UIScrollView 的中Item随着滚动列表联动变化效果图:悬停的变化通过 监听UIConllectionView ContentSet变化再改变待悬停视图和y坐标即可,核心代码如下:- (void)scrollViewDidScroll:(UIScrollView *)scrollView{self.pageSuperVi...原创 2020-04-28 20:20:55 · 22759 阅读 · 2 评论 -
IOS--简易的窗帘动画
IOS–简易的窗帘动画使用原理 UIview的动画控制窗帘的高度#import <UIKit/UIKit.h>NS_ASSUME_NONNULL_BEGINtypedef NS_ENUM(NSInteger, ToastAnimtype) { DONE, RELOCATION, PAWER_SAVE,};@interface Win...原创 2020-03-12 15:48:01 · 472 阅读 · 0 评论 -
IOS控件系列--对象池模式的应用--使用UIScrollView自定义设计滚动列表(UITableView、UICollectionView)(Swift版)
一、效果图:(文末有彩蛋,阅完欢迎留下评论一起交流学习)二、设计思路分析:1.UITableViw、UICollection之所以好用,是因为采用cell的复用机制,即把当前未在屏幕上显示的cell回收,待下一个出现在屏幕上时,使用其进行复用,这种设计即可以达到以最少的cell呈现大量的cell效果。复用的机制这里采用了对象池模式,对于对象池模式可以查阅我的另一编文章,这里不在原创 2017-10-25 09:42:27 · 2266 阅读 · 0 评论 -
IOS仿支付宝首页滑动效果
项目来源翻译大神的swift 本版为objectc版本, 大神地址: 这里写链接内容一.效果图如下: 没什么逻辑可讲述的,直接给源码吧://// ViewController.m// ZFBHome//// Created by 刘xx on 2018/6/12.// Copyright © 2018 liuxx. All rights reserved....翻译 2018-06-13 13:39:47 · 5267 阅读 · 0 评论 -
IOS 滚动列表的分组功能UICollectionView
1.惯例 效果图奉上: 滚动列表的Section与Row分析(UICollectionView UITableView)一个section 里面可以有多个row ,正是这个特性才能够达到分组效果3.1 组头视图 对应的接口为: - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSectio...原创 2018-06-13 15:23:11 · 1305 阅读 · 0 评论 -
IOS 自定义UIView--简易的环形进度条,可随手指更新进度,类似华为的天气进度
1.放上效果图先: 本效果难点: 扩展UIView 重载drawRect接口,了解uiView绘图机制,刷新机制 弧度与角度的互转 任意2点之间计算角度 下面我们一步一步来,先将黄色的刻度画出来,使用CoreGraphices画图,计算每个黄线的度标使用三角函数,这里将x = r* cos(angle) y = r * sin(angle);反过来是一样,只...原创 2018-06-07 11:39:40 · 935 阅读 · 0 评论 -
IOS 控件系列---使用绘图实现简易滑块条
1.惯例 效果图奉上: 滚动列表的Section与Row分析(UICollectionView UITableView)一个section 里面可以有多个row ,正是这个特性才能够达到分组效果3.1 组头视图 对应的接口为: - (UIView *)tableView:(UITableView *)tableView viewForHeaderInSectio...原创 2018-06-14 11:36:13 · 581 阅读 · 0 评论 -
IOS工具类--本地沙盒文件基本操作
本类提供在本地文件的读写、判断等操作:/* 一:a.Documents文件夹,主要用来存储一些重要的信息,比如用户资料,程序的配置文件,聊天记录等等 .Documents中存储的信息会随着iTunes同步到电脑备份或者是iCould开发会同步到云端.该文件夹下不可存太大的内容,比如视频等.上传时会被拒掉. b.Caches主要存储一些缓存文件,比如视频缓存,音频缓存或者...原创 2018-06-20 14:31:29 · 860 阅读 · 0 评论 -
IOS控件系列--在任意视图上添加小红点
一、先上效果图: 二.将需要显示的控件作为这个小红点的父结点,需要注意的地方是,如果父结点与小红点需要进行精确的座标,那么需要进行座标系的转换,这里也提供了一个 例子其他的没什么好分析的,直接给出源码吧://// RedPointBadgeView.h// IMobPay//// Created by liuxiaobing on 2018/7/23.// Co...原创 2018-07-23 18:51:17 · 21370 阅读 · 0 评论 -
Object-c并发三曲---NSOperation的总结
//// ViewController.m// MultiThread//// Created by liuxiaobing on 2018/7/27.// Copyright © 2018 liuxiaobing. All rights reserved.//#import &quot;ViewController.h&quot;#import &quot;CustomNSOperation.h&quot;...原创 2018-07-27 16:03:21 · 237 阅读 · 0 评论 -
mac搭建cordova环境流程
问题来源:MAC 安装cordova安装nodejs 8.0.0 之后,用命令:sudo npm install -g cordova ionic安装cordova 和 ionic 然后用命令:cordova -v 查看版本号 ,然后报了如下错误日志。必须用 sudo cordova -v 才可以用。wjwdeMacBook-Pro:eamWeb wjw$ cordova -v/u...原创 2018-09-01 13:47:33 · 1066 阅读 · 0 评论 -
IOS中使用GCD与信号量机制实现读者写者(读者优先)
一、读者写者问题是操作系统中非常经典的线程同步问题,像jdk中有读写锁用来处理这类问题。在读者写者模式中又有几种不同的同步模式,如:读者优先 式的读者写者类型写者优先 式的读者写者类型公平竞争 式的读者写者类型但不管是哪种类型,在处理 这个问题时都遵循下列几个互斥条件,否则会出现“假死”即都处于等待,或出现脏数据问题。允许读者–读者之间同时执行读操作临界资源不允许写者–写者...原创 2018-11-01 15:27:44 · 19801 阅读 · 0 评论 -
Android/IOS-使用贝赛尔曲线画曲线图与填充图
一、按照惯例先放上效果图二、从这个效果图来看需要画下列几部分座标轴: 画座标轴,这个相信比较简单,画2条直线即可,但是如果座标轴的刻度随着输入的数据而变化的话,估计需要花点时间了。这样封装的目的就是为了在固定的区域可以展示不同的数据范围。如上图,横轴表示的是1-31之间的数,竖轴表示的是0-6000之间的数。但是来了一组横轴数据范围为10-100每个刻度为10,竖轴范围为0-1200每个...原创 2018-11-08 10:13:40 · 19896 阅读 · 0 评论 -
IOS 深拷贝与浅拷贝
IOS 深拷贝与浅拷贝转载 2018-12-08 14:13:04 · 192 阅读 · 0 评论 -
IOS 编辑框焦点失去与获取时提示文本的的动画
一、本文实现的效果如图二、实现思路扩展一个UIView ,内部使用一个UILabel与UITextFiled,其中UILabel 使用动画控制缩放与位移,在UITextFiled 获取焦点时启动动画,进行UILabel 缩放并往上移,失去焦点且文本内容为空时再使用动画控制UILabel恢复到原来的状态。源码如下:#import <UIKit/UIKit.h>NS_ASSUM...原创 2019-04-25 20:07:38 · 332 阅读 · 0 评论 -
iOS 中plist中的对象的读写操作
- (IBAction)readPlist:(id)sender{ NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Person" ofType:@"plist"]; NSMutableDictionary *data = [[NSMutableDictionary alloc] initWithCon原创 2016-06-12 14:58:05 · 270 阅读 · 0 评论 -
IOS设计模式----对象池模式OBJC版
本案例通过使用对象池模式来复用一个UILabel,效果图如下:一.对象池的作用简单介绍:1. 提升对象的使用效率。在使用大量存活率很短,但逻辑基本相似的情况下,反复的创建对象会消费大量的时间。而这个时间主要开销在给对象开辟内存空间。对象池模式通过复用这些对象来减少对象的创建从而达到提升性能。二.角色分析。1.可用对象引用列表,功能:原创 2017-10-13 14:23:35 · 670 阅读 · 0 评论 -
IOS控件系列---文本上下滚动的标签实现广告
一.效果:实现思路较简单,这里不作分析了,直接上代码:import Foundationimport UIKit/// 滚动标签点击事件protocol ScrollLabelListener { func onClickListener(view :UIView)}/原创 2017-10-19 17:04:12 · 2752 阅读 · 0 评论 -
IOS CALayer实现圆点绕圆周运动--CAKeyframeAnimation的使用
效果图如下:android的做法是,扩展一个View然后画一个圆点,再通过一个动画来不改变这个圆点的座标即可。IOS的做法一:展示这个小圆点方法同android,但是圆点的座标变换通过定时器,代码如下:-(void) playAnim{ NSDate *scheduledTime = [NSDate dateWithTimeIntervalSinceN原创 2017-10-10 19:53:10 · 3492 阅读 · 4 评论 -
IOS多线程使用GCD与信号量实现生产者与消费者模式
一、原理的简述 在生产者消费者模式当中,首先需要分清在这个模式当中有哪些角色?各角色分别担任什么职责与它们之间的关系如何?角色之间是在保证数据的准确性的情况下如何通信(同步数据)的?假设现在有一个这样的情形:有两个人共同访问一个容量有限的仓库,这2个人,其中一个是生产鞋子的,另一个是售卖鞋子,他们共同使用一个仓库。在使用这个仓库之前,这2人之间需要建立一种规约,即:1...原创 2017-07-16 11:21:21 · 16771 阅读 · 0 评论 -
iOS 直接加载xib文件到ViewController中
xib 把它简单理解为一个View NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:@"PubTipView" owner:nil options:nil]; UIView *plainView = [nibContents lastObject]; //CGSize padding = (CG原创 2016-06-18 18:18:43 · 2153 阅读 · 0 评论 -
IOS Http请求
ViewController.h文件#import @interface ViewController : UIViewController //get 异步请求需要继承这个协议- (IBAction)GetRequest:(id)sender;- (IBAction)PostRequest:(id)sender;- (IBAction)GetRequest2:(id)原创 2016-06-13 19:11:15 · 403 阅读 · 0 评论 -
iOS 操作sqlite3
//// ViewController.m// Sqlite3_demo//// Created by 刘薇薇 on 16/6/12.// Copyright (c) 2016年 刘胡来. All rights reserved.//#import "ViewController.h"#define TABLENAME @"testdata.sqlite"#defin原创 2016-06-12 20:48:59 · 442 阅读 · 0 评论 -
IOS集合视图
#pragma mark - UICollectionViewDataSource//总共有多少行- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView{ return [self.events count] / 2;}//一个单元格元素的个数 提供某个节中的列数目-原创 2016-06-06 19:12:24 · 302 阅读 · 0 评论 -
IOS UITableView单元点击事件
//选择表视图行时触发- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ if([segue.identifier isEqualToString:@"ShowSelectedCity"]) { DetailViewController *detailViewControll原创 2016-06-11 18:43:48 · 1516 阅读 · 0 评论 -
IOS UITableView删除增加操作
ViewController.h文件#import @interface ViewController : UIViewController@property(weak,nonatomic) IBOutlet UINavigationItem *navgationItem;@property(weak,nonatomic) IBOutlet UITableView *table原创 2016-06-10 17:11:26 · 500 阅读 · 0 评论 -
IOS scrollView与键盘结合使用--防止遮盖控件
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void) initScrollView{ // setting contentSize; self.scrollView.contentSize = CGSizeMake(320, 6原创 2016-06-05 17:59:40 · 3153 阅读 · 0 评论 -
IOS文本框事件--委托方式实现
#pragma mark--------------UITextFieldDelegate method- (BOOL) textFieldShouldBeginEditing:(UITextField*) textField{ NSLog(@"文本将要编辑.............\n"); return YES;}- (void) textFieldDidBegin原创 2016-06-05 11:14:52 · 865 阅读 · 0 评论 -
IOS多线程-NSthread实现生产者与消费者模式
@implementation ViewController- (void)viewDidLoad { [superviewDidLoad]; _array = [NSMutableArrayarray]; _condition = [[NSConditionalloc] init];原创 2017-07-09 21:08:58 · 17198 阅读 · 0 评论 -
IOS UIScrollView滚动内容自适应
设计思路:调整contentSize即可:本例未采用分类 ,而用子类扩展的方法,源码如下:#import typedef NS_ENUM(NSInteger, Oritation) { horizontal = 1, vertical, };/** 解决自适应滚动 */@interface AutoLayoutScrollView : U原创 2017-09-06 10:37:57 · 4148 阅读 · 0 评论 -
IOS控件系列--滚动列表上下滑动时顶部视图固定与滑动效果(Swift版)
一,效果图:二。状态分析:IOS这种滚动列表的滑动总共有四种状态(需要将弹性效果打开才有)对于状态更新主要通过两个关键值判断:let offset : CGPoint = change![NSKeyValueChangeKey.newKey] as! CGPoint let offsetY : CGFloat = offset.y原创 2017-10-19 09:08:33 · 4931 阅读 · 0 评论 -
IOS仿最新版爱奇异loading动画
爱奇异更新版本之后,那个loading效果比较简洁,却又不失美观,遂仿制一把,以供广大程序员交流学习,效果图如下,效果图中是垂直效果,但只要在路径那里改一下即可,还有一个缩放动画未添加,留给看官们自己处理动画分析:圆弧动画:UIBezierPath +CAShapeLayer 其中UIBezierPath画出左右2边的圆弧,然后用基本动画的storkEnd或sto原创 2017-09-22 17:05:25 · 826 阅读 · 0 评论 -
IOS控件系列----使用UITableView实现网格布局,自定义显示列数
先放一引效果图:在IOS中达到类似Android中的GridLayout 通常是使用UIConlectionView,这个组件是平果公司已经封装好的,直接实现相应的接口即可。不知道各位道友是否也曾想过用UItableView来撸一个这个东西,这可能会有一点偏执,但对于致力于提高自己的人来说,不安于现状,死喜欢用各种自定义的东西来“折腾”自己也不失为一种方式。我本人就比较喜欢在闲原创 2017-09-28 19:53:37 · 3785 阅读 · 0 评论 -
IOS控件列---仿Android的Toast提示信息
本案例设计思路没什么难的地方,只要掌握了CAShapeLayer +UIBezierPath效果图如下:与基本动画 的使用,设计出来完全没问题,直接奉送代码:import UIKit/// wegt结构体来控制提示文本的信息struct TextTipsInfo { var position : CGRect原创 2017-09-27 18:58:03 · 8704 阅读 · 0 评论 -
ios + Android 底部拖拉菜单
这个简易 的底部拖拉菜单没什么工作量,这里氷分析了,直接上代码,距离属性没剥离出来,不过很简单,各位大神用到的时候,自己扩展吧代码如下:@interface ViewController ()@property(nonatomic,strong) UIView* bottomView;@property(nonatomic, strong) NSLayoutCon...原创 2017-09-19 10:51:59 · 655 阅读 · 0 评论