![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
iOS开发
文章平均质量分 68
yoyo_lzj
专注移动开发 提高用户体验 为技术而执着
展开
-
裁切图像设置圆角图像,不使用控件的layer.cornerRadius属性
异步绘制图像,利用裁切图像设置圆角图像:例子: /** * 异步绘制图像,利用裁切图像设置圆角图像 isCorner:表示是否裁剪 */ fun LZJ_asyncDrawImage(size: CGSize, isCorner: Bool = false, backColor: UIColor? = UIColor原创 2016-02-29 22:40:19 · 957 阅读 · 0 评论 -
iOS中的设计模式
MVC :就是Model-View-Controller的缩写,M指的是业务模型,V指的是用户页面,C指的是控制器。MVC是架构模式,是讲M和V的代码分离,从而使同一个程序可以使用不同的表现形式。M:表示数据和业务规则,V是用户看到的并与之交互的页面,C是接受用户的输入并调用M和V取完成用户需求的;单例模式 : 说白了就是一个类不通过alloc方式创建对象,而是原创 2016-02-17 19:17:51 · 227 阅读 · 0 评论 -
加密(文件或者登入信息等等)
1.base64图片加密利用base64加密 ,ios7.0之后有的 ,保证安全base64加密特点:针对二进制数据加密将8 bit —> 6 bit 2的6次方 = 64;不足的位数用0补齐,两个0 就是一个=号,加密之后的特点:加密之后数据中有=号, base64编码是现代密码学的基础. 原本是8个bit原创 2016-01-14 23:11:43 · 329 阅读 · 0 评论 -
HTTP请求
1> http协议:超文本传输协议(Hypertext Transfer Protocol) { http协议规定了客户端和服务器之间的数据传输格式. http协议是在网络开发中最常用的协议.不管是移动客户端还是PC端,访问网络资源经常使用http协议. http优点:原创 2016-01-14 22:58:41 · 215 阅读 · 0 评论 -
视频播放器
一:MPMoviePlayerViewController:(已过时) 1. 导入: MediaPlayer/MediaPlayer.h #import #import 2. 创建视频播放控制器 创建视频播放控制器,不能打全局断点. MPMoviePlayerViewController *mv = [原创 2016-01-12 23:06:21 · 247 阅读 · 0 评论 -
Button — 设置圆角的方法
//加载背景图片 UIImage * normal = [ UIImage imageNamed:@"RedButton"]; UIImage * highted = [ UIImage imageNamed:@"RedButtonPressed"]; //拉升方式 normal = [normal stretchab原创 2016-01-28 23:36:18 · 758 阅读 · 0 评论 -
lable-----qq聊天气泡圆角设置
设置圆角: lable对象.layer.cornerRadius = 10;qq聊天气泡圆角拉伸设置:在set方法中执行的方法// 3.2为了让图片显示效果符合实际需求,我们需要修改图片的的拉升方式,所以需要在设置背景图之前把图片进行中间拉升,让后在设置 UIImage *newSendImage = [selfresizableIma原创 2016-01-28 23:35:48 · 1150 阅读 · 0 评论 -
LBS(定位服务)pLocation Based Service ———— 地图
知识点:1.CoreLocation框架—负责定位的(手机的)位置。用于地理定位2.MapKit.framework—系统自带的框架,地图展示,3.ios7 中:系统会自动申请用户位置权限。CoreLocation中使用CLLocationManager对象来做用户定位,CoreLocation框架中所有数据类型的前缀都是CL定位的类(位置管理器最好懒加载创建,强引原创 2016-01-28 23:34:31 · 1188 阅读 · 0 评论 -
设置约束的masonry的使用
Masonry 1.Masonry基本概念 》Masonry,“一个轻量级的布局框架,采用更"优雅"的语法封装自动布局”,不需要使用XIB和Storyboard,并具有高可读性而且同时支持iOS 和 Max OS X Masonry尤其适合习惯纯代码开发的开发者,在iPhone6发布后引发的适配潮中Masonry一定可以助你一臂之力原创 2016-01-28 23:32:40 · 4550 阅读 · 0 评论 -
数据传递的几种方式:代理,通知,block,单例
数据回调之代理:在需要传送数据出去的类中设置代理:设置代理协议,代理属性(为id类型,weak修饰),定义一个代理方法,这这个类中判断是否执行了这个代理方法,用(if ([self.delegate respondsToSelector:@selector(代理方法)]))来判断,代理为self,在接受数据的类中:遵守代理协议,设置(需要传送数据出去的类原创 2016-01-10 14:29:14 · 549 阅读 · 0 评论 -
UIWebView
一、UIWebView的基础使用1、创建UIWebView:CGRect bouds = [[UIScreen manScreen]applicationFrame];UIWebView* webView = [[UIWebView alloc]initWithFrame:bounds];2、设置属性:webView.scalespageToFit = YES;//自动对页面进转载 2016-01-12 00:00:06 · 213 阅读 · 0 评论 -
图形绘制
1.基本图形绘制* 线段(线宽、线段样式)* 矩形(空心、实心、颜色)* 三角形、四边形等形状1> 说明 - (void)drawRect:(CGRect)rect 什么时候调用、调用次数等- 当 view 第一次被显示的时候调用(调用一次)- 或者是重绘事件被触发的时候- 不要手动去调用这个方法- 手动调用重绘方法 setNeedsDisplay 或原创 2016-01-11 23:59:18 · 359 阅读 · 0 评论 -
user-agent
user-agent一般指用户代理 用户代理 User Agent,是指浏览器,它的信息包括硬件平台、系统软件、应用软件和用户个人偏好。在X.400电子系统中,用户代理是一种对数据打包、创造分组头,以及编址、传递消息的部件。用户代理并不是仅指浏览器,还包括搜索引擎。 //手机浏览器控件 UIWebView. // 利用手机原创 2016-01-11 23:58:10 · 272 阅读 · 0 评论 -
Socket
Socket :套接字/插座. --- "通信模型",不属于网络七层协议.Socket中至少包含了网络层和传输层协议,其他几层也有包含(表示/会话).作用 :解决"不同应用程序"之间的通信问题.Socket :"主机"+ "端口" == Socket七层协议:网络层:{ IP地址:寻找主机的.原创 2016-01-11 23:56:48 · 216 阅读 · 0 评论 -
http 的post与get区别与联系,实践中怎么选择
(1)get是从服务器上获取数据,post是向服务器传送数据。(2)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置HTML HEADER内提交。(3)对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。(4)GET方式提交的原创 2016-02-17 19:20:11 · 254 阅读 · 0 评论 -
Pch文件的主要作用 和分类Category的作用
pch:( Prefix Header File)1.放一些公共的宏定义2.放一些公共的某个类的头文件3.自定义NSLog()什么是CategoryCategory模式用于向已经存在的类添加方法从而达到扩展已有类的目的,在很多情形下Category也是比创建子类更优的选择。新添加的方法 同样也会被被扩展的类的所有子类自动继承。当知道已有类中原创 2016-02-17 19:23:26 · 547 阅读 · 0 评论 -
对UIView、UIWindow和CALayer的理解
UIView:属于UIkit.framework框架,负责渲染矩形区域的内容,为矩形区域添加动画,响应区域的触摸事件,布局和管 理一个或多个子视图UIWindow:属于UIKit.framework框架,是一种特殊的UIView,通常在一个程序中只会有一个UIWindow,但可以手 动创建多个UIWindow,同时加到程序里面。UIWindow在程序中主要起到三个作用:1、原创 2016-02-17 19:24:31 · 379 阅读 · 0 评论 -
表格中自动布局注意和使用自动计算行高
设置预估行高,保证表格能够滚动 200:可选值,看你自己怎么设置,不过设置行高属性尽量准确 tableView?.estimatedRowHeight= 200。 设置行高是自动计算,调用数据源方法的时候,会根据cell 的布局内容计算行高,更新 contentSize的height 自动计算行高:tableView?.rowHeight=UITableVi原创 2016-02-29 22:30:50 · 956 阅读 · 0 评论 -
AFN3.0与2.0分别做了哪些处理
AFN2.0:1.对NSURLSession的封装,2.对AFURLConnection的封装,3.对HTTPS网络安全请求做了一个包装,4.做了一个网络连接管理的一个包装,AFN3.0:1>添加进度回调2> 去掉所有AFURLConnection原创 2016-02-27 23:37:46 · 2122 阅读 · 0 评论 -
设置导航栏和tabor栏时想设置下面和上面那条线怎么弄
swift语言中:翻译成OC是一样的利用tabBar.backgroundImage 和 tabBar.shadowImage 这俩个属性就可以设置了例子: tabBar.backgroundImage= UIImage(named:"tabbar_background") tabBar.shadowImage=原创 2016-02-27 23:20:00 · 652 阅读 · 0 评论 -
swift语法(三)
17.面向对象懒加载懒加载的格式如下 :------------ ViewController.swift ------------class ViewController: UIViewController { /** `懒`加载, 本质上是一个闭包 第一次访问属性时, 会执行后面的代码,将闭包的 `结果`保存在pe原创 2016-02-26 20:10:21 · 405 阅读 · 0 评论 -
VFL、SnapKit、masonry 三种自动布局的使用
Masonry Masonry基本概念 Masonry,“一个轻量级的布局框架,采用更"优雅"的语法封装自动布局”,不需要使用XIB和Storyboard,并具有高可读性 而且同时支持 iOS 和 Max OS X Masonry尤其适合习惯纯代码开发的开发者,在iPhone6发布后引发的适配潮中Masonry一定可以助你一臂之力 ***框原创 2016-02-23 20:48:19 · 1942 阅读 · 0 评论 -
UIButton的contentEdgeInsets属性
由于用UIButton这个属性做过一些东西,但是对它的规律始终不太了解,虽然苹果官方文档的解释大体上可以理解为,这个属性设置的是内边距,更通俗点说,是规定,Button向内的多少区域其它控件是不能进入的。但是总存在一些奇怪的现象,所以我做了个Demo得出下面的规律。先看demo。可以下载自己尝试。我们先研究竖直方向上的,也就是顶部和底部向内推这个方向。代码如下,我们先在StoryBoard上创转载 2016-03-07 19:14:55 · 642 阅读 · 0 评论 -
swift语法(二)
13.函数.1.定义函数和外部参数:格式: func 函数名(形参列表)-> 返回类型 {//代码实现} 调用函数格式: 第一个参数忽略,第二个参数有,例子:overridefunc viewDidLoad() { super.viewDidLoad() sum(3, y:10); } //有参数有返原创 2016-02-20 22:06:26 · 496 阅读 · 0 评论 -
对block的理解
Block是一种数据类型,C 语言的,匿名函数,可以被当做参数和返回值传递,block是预先定义好的代码,可以在任何需要的时候被执行.默认情况下,不允许在块代码内部修改外部变量的数值。用Block传值时要防止循环引用,例如:在一个 控制器中,self强指针指向一个对象,这个 对象又强指针指向一个block,在这个block的代码块中有一个self.,那么就会造成循环引用,从而导致内存无原创 2016-02-20 09:55:13 · 429 阅读 · 0 评论 -
Swift语法
Swift的基本语法: swift中的所有代码,都包含在最外侧的 {}中。oc与swift比较:1.oc的alloc initWithXXX 在swift中是 (xxx:) 2.oc中的类方法在swift中是.语法 3.oc中的枚举 在swift中用点语法隔开,也可以直接省略前缀,但不建议例如: OC 的枚举 UIButtonTyp原创 2016-02-18 21:10:53 · 1223 阅读 · 0 评论 -
OS X 10.11 安装Cocoapods 出现问题的解决方法
今天尝试用 Cocoapods安装个第三方库.. 输入pod install, 发现 command not find。 WTF!估计是升级10.11后Cocoapods被干掉了。我输入 sudo gem install cocoa pods 之后,出现如下问题:ERROR: While executing gem ... (Errno::EPERM) Operatio转载 2016-03-16 16:21:24 · 522 阅读 · 0 评论 -
进程和线程的区别与联系是什么?
一个程序至少有一个进程,一个进程至少有一个线程:进程:一个程序的一次运行,在执行过程中拥有独立的内存单元,而多个线程共享一块内存线程:线程是指进程内的一个执行单元。联系:线程是进程的基本组成单位 区别:(1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 (2)并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发原创 2016-02-17 19:26:39 · 394 阅读 · 0 评论 -
为什么会出现数据安全问题?资源抢夺有哪些解决办法
1)因为不同的线程同时执行任务,同时访问统一资源。如果异步操作要保证线程安全等问题, 尽量使用GCD(有些函数默认就是安全的) 2)1> @synchronized(xx) {...} 互斥锁2> NSLock 同步锁3> dispatch_barrior_async 作用是在并行队列中,等待前面两个操作并行操作完成原创 2016-02-17 19:25:42 · 1494 阅读 · 0 评论 -
NSURLSession(二)POST请求
//1.构造URLNSURL *url = [NSURL URLWithString:@"https://api.weibo.com/2/statuses/update.json"];//2.构造RequestNSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];//(1)设置转载 2016-01-11 23:55:38 · 147 阅读 · 0 评论 -
NSURLSession(一)GET请求
//GET请求, 也可以给服务器发送信息, 也有参数(微博用户名,用户id)//1.构造URL, 参数直接拼接在url连接后NSURL *url = [NSURL URLWithString:@"http://news-at.zhihu.com/api/3/news/4602734"];//2.构造Request//把get请求的请求头保存在request里//NSUR转载 2016-01-11 23:55:10 · 342 阅读 · 0 评论 -
SQL语句
主键:数据库中每一条数据的唯一标识符!不能重复,不能为空!SQL 语句 : 学会使用 CRUD(增/删/改/查)的 SQL 语句!1.创建“表”语句CREATE TABLE IF NOT TEXTS "t_student" ("id" INTEGER PRIMARY KEY AUTOINCREMENT , "name" TEXT原创 2016-01-24 14:51:59 · 198 阅读 · 0 评论 -
autoresizing 的基本介绍
autoresizing是UIView的属性,可以用来做一些简单的自动布局实现。网络文章介绍单属性的居多,对组合情况研究的较少。本文对组合情况进行了一些研究。单属性的介绍如下属性描述UIViewAutoresizingNone不会随父视图的改变而改变 UIViewAutoresizingFlexibleLeft转载 2015-12-04 18:18:47 · 341 阅读 · 0 评论 -
MVC 概念、九宫格算法及案例、创建弹框的方法
// M : Model, 负责获取数据// V : View, 负责显示// C : Controller, 负责编写各种逻辑代码, 创建Model和View, 并且把Model设置给View// Models、 Views、 Controllers、 Others三者之间的协调关系是:控制器拿到模型对象赋值给对应的视图,然后视图负责展示,控制器是协调者,用来协调原创 2016-01-22 23:05:07 · 305 阅读 · 0 评论 -
scrollView
UIScrollView是干什么的?UIScrollView 也是一种控件用来实现”滚动”和”缩放”的控件“滚动”和”缩放”指的是针对放到 UIScrollView控件里面的内容(可以是图片、表格、其他控件等),UIScrollView控件本身不动1.scrollView主要的三个属性*滚动的范围(contenSize)self.scrollView.content原创 2016-01-22 22:57:34 · 360 阅读 · 0 评论 -
添加UIview自定义的分割线、去掉默认的cell分割线、默认选中某一个(行)cell的方法
//添加分割线 在tableView的cell中 UIView * lineView = [[ UIView alloc]init]; lineView.backgroundColor= [UIColor blackColor]; [self.contentView addSubview:lineView]; //原创 2016-01-22 22:55:21 · 2930 阅读 · 0 评论 -
转圈圈(正在加载的控件)的2种创建方法
//懒加载 第一种创建方式:初始化控件-(UIActivityIndicatorView*)activity{ if (!_activity) { _activity = [[ UIActivityIndicatorView alloc]initWithFrame:CGRectMake(0,0,原创 2016-01-22 22:39:10 · 2884 阅读 · 0 评论 -
Html5、CSS、JavaScript小知识---ios
html利用的工具值webstorm 1. 什么是 HTML5 ? HTML 的全称是:HyperText Markup Language :超文本标记语言! 实质是一个文本(字符串),由 浏览器负责将它解析成网页内容! HTML5 是 html(网页) 的第五版标准,历时8年才制定完! HTML5 的设计理念就是移动先行!设计目的就是为了在移动原创 2016-01-22 22:36:16 · 965 阅读 · 0 评论 -
UICollectionView
在iOS中,要实现九宫格数据展示,最常用的做法就是使用UICollectionViewUICollectionView继承自UIScrollView,因此支持垂直滚动或水平滚动,而且性能极佳UICollectionView在iOS6中推出得,也是UIKit视图类中的一颗新星。它和UITableView共享API设计,但也在UITableView上做了一些扩展。UICol原创 2016-01-22 22:31:20 · 581 阅读 · 0 评论 -
多线程
简介当用户播放音频、下载资源、进行图像处理时往往希望做这些事情的时候其他操作不会被中断或者希望这些操作过程中更加顺畅。在单线程中一个线程只能做一件事情,一件事情处理不完另一件事就不能开始,这样势必影响用户体验。早在单核处理器时期就有多线程,这个时候多线程更多的用于解决线程阻塞造成的用户等待(通常是操作完UI后用户不再干涉,其他线程在等待队列中,CPU一旦空闲就继续执行,不影响用户其他UI操作)原创 2016-01-04 15:47:12 · 244 阅读 · 0 评论