
UI
文章平均质量分 74
explore_zhang
iOS从业者和爱好者。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
awakeFromNib与viewDidLoad的区别
当一个nib文件对应两个类,File's Owner的class为CZViewController,Objects下的View对应的为CZView时:【如果不好理解的话,你可以这么理解: Main.storyboard关联了ViewController类,而ViewController中有一个UIView,这个UIView对应的是类CZView。】 1. 用在何原创 2015-09-26 01:25:01 · 1043 阅读 · 0 评论 -
BitMap类型的图形上下文
1. 系统提供的上下文Quartz2D提供了以下几种类型的GraphicsContext:>Bitmap GraphicsContext(图片类型的上下文)>> PDF Graphics Context>> Window Graphics Context>> Layer Graphics Context(UI控件)>> Printer Graphics Contex原创 2015-09-20 19:20:53 · 705 阅读 · 0 评论 -
View的触摸事件处理
1.UIResponder概念a.在用户使用app过程中,会产生各种各样的事件,iOS中的事件可以分为3大类型:触摸事件、加速事件、远程控制事件。今天主要介绍触摸事件。b.在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件,我们称之为“响应者对象”。c.UIApplication、UIViewController、UIView都继承自UIRes原创 2015-09-22 00:26:12 · 711 阅读 · 0 评论 -
UITouch
1. UITouch对象概念: 当用户用一根手指触摸屏幕时,会创建一个与手指相关联的UITouch对象,可以说一根手指对应一个UITouch对象。 2. UITouch的作用: a.保存着跟本次手指触摸相关的信息,比如触摸的位置、时间、阶段;b.当手指移动时,系统会更新同一个UITouch对象,使之能够一直保存该手指所在的触摸位置;c.当手指离开屏幕时,系统会销毁相原创 2015-09-22 00:51:10 · 417 阅读 · 0 评论 -
多点触控及一个华丽的Demo
1.触摸过程一次完整的触摸过程,会经历3个状态:触摸开始:-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event触摸移动:-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event触摸结束:-(void)touchesEnded:(原创 2015-09-22 01:36:33 · 1286 阅读 · 0 评论 -
手势识别功能(Gesture Recognizer)
1.手势识别概念a. iOS 3.2之后,苹果推出了手势识别功能(GestureRecognizer),在触摸事件处理方面,大大简化了开发者的开发难度。b.为了完成手势识别,必须借助于手势识别器----UIGestureRecognizer,利用UIGestureRecognizer,能轻松识别用户在某个view上面做的一些常见手势。2.原创 2015-09-23 18:20:12 · 2236 阅读 · 0 评论 -
Objective-C 之 KVO 详解
A、概要iOS 开发有多种设计模式,其中就有一种叫做观察者模式,它是通过 KVO 实现的。B、KVO 简介KVO 的全称是 Key-Value Observing,是ObjC中原生支持的一种机制。C、KVO 实现原理当对一个对象添加观察者,被观察对象的属性值发生变化时,观察者会得到通知,并对变化做出相应的处理。D、KVO 的特点1. 支持多个原创 2015-12-13 20:43:48 · 661 阅读 · 0 评论 -
浅析 UIImage 的2种加载方式对内存的影响
A、UIImage的2种加载方式:方式一:有缓存(图片所占用的内存会一直停留在程序中)+ (nullable UIImage *)imageNamed:(NSString *)name; // name是图片的文件名解析:1. 该方法会自动地做缓存,一般用于给控件添加素材图片,比如背景图片、placeHolder等。 2. 使用(原创 2015-12-29 12:18:01 · 3519 阅读 · 0 评论 -
CATransition-转场动画
CATransition-转场动画概念它是 CAAnimation 的子类,用于做转场动画,能够为层 (CALayer) 提供移出屏幕和移入屏幕的动画效果。实际上 UINavigationController 就是通过 CATransition 实现了将控制器的视图推入屏幕的动画效果。属性解析: type:动画过渡类型 subtype:动画过渡方向原创 2016-01-17 20:48:55 · 404 阅读 · 0 评论 -
UITableView 介绍
一、UITableView 理解在移动应用中,能看到各式各样的表格数据。在iOS中,要实现表格数据的展示,最常用的做法就是使用UITableView。UITableView继承自UIScrollView,因此支持垂直滚动,而且性能极佳。UITableview有分组和不分组两种样式,可以在storyboard或者是用代码设置。A、UITableViewStyleGrouped原创 2016-01-24 23:10:31 · 739 阅读 · 0 评论 -
cell的重用机制
cell的重用机制原创 2015-12-24 13:06:52 · 723 阅读 · 0 评论 -
UIScrollView 介绍
一、UIScrollView 的基本概念UIScrollView是iOS中的滑动控件,可以实现”滚动”和”缩放”,用来解决当前要显示的内容超出视图的范围时,可以通过滑动方式查看视图的所有内容的问题。二、UIScrollView 的常见属性1、、contentSize// default CGSizeZero@property(nonatomic) CGSi原创 2016-01-10 22:00:24 · 447 阅读 · 0 评论 -
CALayer 的基本概念和基本使用
一、基本介绍1.概念CALayer 的 CA 是 Core Animation (核心动画)。在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮、一个文本标签、一个文本输入框、一个图标等等,这些都是UIView。其实UIView之所以能显示在屏幕上,完全是因为它内部的一个图层。在创建UIView对象时,UIView内部会自动创建一个图层(即CALayer对象),通过原创 2016-04-04 17:45:59 · 678 阅读 · 0 评论 -
Objective-C中的屏幕截图
1. view和layer概念理解:a.layer是负责显示的,view是负责处理事件的;b.我们能看到的都是layer,截图也是通过layer来操作的;c.截屏,截的是某一个view。2. 核心代码-(void)renderInContext:(CGContextRef)ctx;截图基本思路:1、获取控件的 layer对象2、调用 layer 对象的 rend原创 2015-09-21 00:16:15 · 2317 阅读 · 0 评论 -
添加图片水印
一、水印的概念和作用1> 水印的概念:在图片上加的半透明logo、文字、图标。2> 水印的作用:a. 可以展示图片的出处;b. 一些网站为了版权问题、广告而添加;c. 有时候,在手机客户端app中也需要用到水印技术。比如微博用户拍完照片后,可以在照片上打个水印,标识这个图片是属于谁的。二、水印的实现方式和核心代码1> 水印的实现方式:利用Quartz2D,将原创 2015-09-20 20:57:47 · 462 阅读 · 0 评论 -
《幸运大转盘》代码分享
《幸运大转盘》有一句代码是这样的:self.rotateView.transform = CGAffineTransformMakeRotation(-angle);它出现在延迟派遣消息 dispatch_after 里面,然而你真的看懂它了吗?本文将揭秘这句代码的真相!红字黄底标出!#import "ViewController.h"#import "ZHYView.原创 2015-09-26 01:26:09 · 5045 阅读 · 0 评论 -
iOS 绘制纯圆形样式的image图片的方法
、通过image mask来操作,需要添加mask目标图片。2、通过imageview的layer来操作1.通过imageView的layer来实现: UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"hani"]]; imageView.frame =原创 2015-09-10 23:38:18 · 1892 阅读 · 0 评论 -
实现从一个应用程序内部跳转到另一个应用程序的Demo
2个APP素材:《网易彩票》《幸运大转盘》原理理解1:苹果手机中的APP都有一个沙盒,APP就是一个信息孤岛,相互之间是不可以进行通信的。但是iOS的APP可以注册自己的URLScheme,来实现app之间的互相调用。我们可以通过系统的OpenURL来打开注册了URLScheme的app,并可以传递一些参数。原理理解2:一个APP的URLSche原创 2015-09-30 16:10:01 · 1672 阅读 · 0 评论 -
数据存取的方式和应用沙盒目录的常见获取方式
iOS应用数据存储的常用方式1. XML属性列表(plist)归档2. Preference(偏好设置)3. NSKeyedArchiver归档4. SQLite3(本文不涉及)5. Core Data(本文不涉及)应用沙盒:每个iOS应用都有自己的应用沙盒(应用沙盒就是应用的文件夹),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒.但是,在iOS原创 2015-10-08 00:08:49 · 1118 阅读 · 0 评论 -
XML属性列表(plist)归档
XML属性列表(plist)归档1> 理解:a. 属性列表是一种XML格式的文件,拓展名为plist;b.如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,就可以使用writeToFile:atomically:方法直接将对象写到属性列表文件中;c. 自定义对象不能做 plist 存储,因为它没有原创 2015-10-08 00:24:55 · 605 阅读 · 0 评论 -
UITabBarController笔记(UITabBar/UITabBarButton)
跟UINavigationController类似,UITabBarController也是专门用来管理多控制器的,它能够轻松完成控制器之间的切换。1 UITabBarController的创建新建一个空项目,通过代码来创建UITabBarController(注意:如果使用“Single View Application”创建项目的话默认是有Main.storyboard和Main.原创 2015-09-18 23:06:12 · 2083 阅读 · 0 评论 -
偏好设置的存储
1. 理解:a. 很多iOS应用都支持偏好设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能。b. 每个应用都有个NSUserDefaults实例,通过它来存取偏好设置,比如:保存用户名、字体大小、是否自动登录等。c. 注意:UserDefaults设置数据时,不是立即写入,而是根据时间戳定时地把缓存中的数据写入本地磁盘。所以调用了set方法之后数据有可能还没有写入磁盘应用程原创 2015-10-08 00:48:55 · 1371 阅读 · 0 评论 -
另一种控制器切换的方式→Modal
除了push之外,还有另外一种控制器的切换方式,那就是Modal。一、Push和Modal的区别:1> 只有受UINavigationController管理的控制器才能用push; 任何控制器都能通过Modal的形式展示出来。2> 当控制器A跳转到控制器B,两者之间有关系的时候,用push,否则用Modal。补充:基本上所有移动端app弹出的登录界面都是用Mod原创 2015-09-19 12:36:04 · 1718 阅读 · 0 评论 -
归档解档(编码解码)
1.理解a. 如果对象是NSString、NSDictionary、NSArray、NSData、NSNumber等类型,可以直接用NSKeyedArchiver进行归档和恢复;b. 不是所有的对象都可以直接用这种方法进行归档,只有遵守了NSCoding协议的对象才可以;2. NSCoding协议的2个方法:uencodeWit原创 2015-10-08 01:01:44 · 1116 阅读 · 0 评论 -
创建imageview的两种方法及区别
创建imageview的两种方法方法一UIImageView* imageView= [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"me"]];方法二UIImageView* imageView =[[UIImageView alloc] init];imageView.frame =CGRectMake(0,原创 2015-09-20 19:08:03 · 757 阅读 · 0 评论 -
裁剪圆形图片的思路及Demo
1. 图片裁剪一般思路:1》获取 UIView 的图形上下文对象;2》在上下文中绘制一个要裁减的图形;3》调用voidCGContextClip(CGContextRef c)进行裁剪;4》在裁剪好的上下文中再把图片绘制上去。2. 将一张普通的图片剪裁成圆形的思路:1、获取 UIView 的图形上下文对象2、在上下文对象上绘制一个圆形路径3、执行裁剪操作(裁剪的意思原创 2015-09-20 19:11:26 · 2200 阅读 · 0 评论 -
Xcode绘制文字及图片
1.Quartz2D绘图的两种方式方式一:直接调用 Quartz2D 的 API 进行绘图特点:代码量稍大、功能全面;步骤:1> 获取绘图上下文2> 把图形绘制到绘图上下文上3> 把绘图上下文上的图形渲染到对应的设备上方式二:调用 UIKit 框架封装好的 API 进行绘图特点:代码相对简单;说明:只对部分 Quartz2D 的 API 做了封装,对于没原创 2015-09-20 19:13:43 · 2019 阅读 · 0 评论 -
一步一步教你完成通讯录索引的编码
实现UITableview的索引编码的最简单的方法原创 2016-04-07 23:29:26 · 1273 阅读 · 0 评论