分类: ios基础2013-01-06 22:05 15513人阅读 评论(2) 收藏 举报 1.CGAffineTransformMakeTranslation每次都是以最初位置的中心点为起始参照 CGAffineTransformTranslate每次都是以传入的transform为起始参照 CGAffineTransformIdentity为最初状态,即最初位置的中心点 2.3个按钮,bt1,bt2,bt3,bt1和bt2控制bt3的移动 - (IBAction)bt1clicked:(i…
摘要: CGAffineTransformMakeTranslation和CGAffineTransformTranslate的区别 1.CGAffineTransformMakeTranslation每次都是以最初位置的中心点为起始参照 CGAffineTransformTranslate每次都是以传入的transform为起始参照 CGAffineTransformIdentity为最初状态,即最初位置的中心点 2.3个按钮,bt1,bt2,bt3,bt1和bt2控制bt3的移动 - (IB…
创建一个界面,就像这样的: 顶部是一个UISegmentControl,用来制定transform的类型.分别是:CGAffineTransformMakeTranslation.CGAffineTransformTranslate.CGAffineTransformIdentity. 然后是一个UILabel,这个Label实时的显示当前的动画类型是什么. 桔色的是动画的View. 最下面是一个按钮,按这个按钮桔色的View开始执行动画. 其他的,蓝色的线就是这几个View的Constrain…
什么是Transform? Transform是一个3×3的矩阵,如下图所示: 通过这个矩阵我们可以对一个坐标系统进行缩放,平移,旋转以及这两者的任意组着操作.而且矩阵的操作不具备交换律,即矩阵的操作的顺序不同会导致不同的结果.UIView有个transform的属性,通过设置该属性,我们可以实现调整该view在其superView中的大小和位置. 矩阵实现坐标变化背后的数学知识: 常用的三种实现选中的方式: //  实现的是放大和缩小 view.transform=CGAffineTransf…
1. - (void)dealloc { [[NSNotificationCenter defaultCenter] removeObserver:self]; } - (void)registerNotification { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showKeyboard:) name:UIKeyboardWillShowNotification object:nil]…
1.如何通过代码设置Button  title的字体大小 设置Button.titleLabel.font = [UIFont systemFontOfSize:<#(CGFloat)#>] : 2.获取当前时间 NSDate *timeDate=[NSDate date]; NSDateFormatter * dateformatter=[[NSDateFormatter alloc] init]; [dateformatter setDateFormat:@"YYYYMMddHH…
今天愚人节,小伙们,愚人节快乐! 实现一个小功能,滑动菜单,显示隐藏的功能菜单, 先上图:                       这里尝试用了下使用三个方式来实现了这个功能: 1.使用自定义UITableViewCell + UISwipeGestureRecognizer + 代理 实现: 2.使用自定义UITableViewCell + UIPanGestureRecognizer + 代理 实现: 3.使用自定义UITableViewCell + UISwipeGestureReco…
--UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件都介绍一遍确实没有必要,所谓授人以鱼不如授人以渔,这里会尽可能让大家明白其中的原理,找一些典型的控件进行说明,这样一来大家就可以触类旁通.今天我们主要来看一下UIScrollView的内容: UIView UIScrollView 实战--图片浏览器 UIView 在熟悉UIScrollView之前…
前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view.寻找最合适的view的底层实现.拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应) 章节顺序正好和事件的时间顺序相反: 事件处理->事件的产生和传递 其中重点和难点是: 1.如何寻找最合适的view 2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现) (一)iOS中的事件 iOS中的事件可以分为3…
--通过transform修改位置(平移)- CGAffineTransformMakeTranslation(**X偏移量**, **Y偏移量**);- CGAffineTransformTranslate(**在某个transform的基础上-一般为自身**, **X偏移量**, **Y偏移量**); --通过transform修改大小(缩放)- CGAffineTransformMakeScale(**宽缩放的倍数**, **高缩放的倍数**);- CGAffineTransformSca…
CGAffineTransformMakeTranslation每次都是以最初位置的中心点为起始参照 CGAffineTransformTranslate每次都是以传入的transform为起始参照,累加上一次形变效果 CGAffineTransformIdentity为最初状态,即最初位置的中心点…
这个是CoreGraphics框架中的CGAffineTransform类,可用于设定UIView的transform属性.控制视图的缩放.旋转和平移操作.另称仿射变换矩阵. Quartz转换实现原理:Quartz把绘图分为两个部分,用户空间(和设备无关),设备空间.用户空间和设备空间中存在一个转换矩阵CTM.我们可以通过直接修改CTM来实现效果,也可以通过创建Affine Transforms,然后连接CTM实现同样的效果.好处是可以重用Affine Transforms. void CGCo…
在iOS学习23之事件处理中,小编详细的介绍了事件处理,在这里小编叙述一下它的相关原理 1.UITouch对象 在触摸事件的处理方法中都会有一个存放着UITouch对象的集合,这个参数有什么用呢? (1)UITouch 对象的简介 当用户用一根手指触摸屏幕时,会创建一个与手指相关联的 UITouch 对象 一根手指对应一个 UITouch 对象 UITouch 的作用 保存着根手指相关的信息,比如触摸的位置.时间.阶段 当手指移动时,系统会更新同一个 UITouch 对象,使之能够一直保持该手指…
前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view.寻找最合适的view的底层实现.拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应) 其中重点和难点是: 1.如何寻找最合适的view 2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现) (一)iOS中的事件 iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件这里我们只讨论iOS中的…
在用户使用app过程中,会产生各种各样的事件 iOS中的事件可以分为3大类型:触摸事件.加速计事件.远程控制事件 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 // 当手指开始触摸view // NSArray,字典,NSSet(无序) - (void)touchesBeg…
触摸事件 iOS中的事件: 在用户使用app过程中,会产生各种各样的事件.iOS中的事件可以分为3大类型:    view的触摸事件处理: 响应者对象: 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象”. UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件. UIResponder: UIResponder内部提供了以下方法来处…
概览 图形上下文 路径 颜色与颜色空间 变换 图案 阴影 渐变 透明层 Quartz 2D 中的数据管理 位图与图像遮罩 CoreGraphics 绘制 Layer 5.变换 简介 Quartz 2D 绘制模型定义了两种独立的坐标空间:用户空间(用于表现文档页)和设备空间(用于表现设备的本地分辨率). 当我们需要一个点或者显示文档时, Quartz 会将用户空间坐标系统映射到设备空间坐标系统.当前映射关系的变换矩阵称为 CTM(current transformation matrix). Qu…
第五章:Transforms   Affine Transforms   CGAffineTransform是二维的     Creating a CGAffineTransform   主要有三种变化方法 旋转: CGAffineTransformMakeRotation(CGFloat angle)     缩放: CGAffineTransformMakeScale(CGFloat sx, CGFloat sy)   移动: CGAffineTransformMakeTranslation…
视图.绘图.贴图.手势.变形.布局.动画.动力.特效 UIBezierPath.UIGestureRecognizer.CGAffineTransform.frame.bounds.center.transform.UITouch.UIEvent.Layout.Autoresizing.Auto Layout.Animation.UIImage.NSTimer.UIView.Core Animation.CALayer.CAAnimation.CABasicAnimation.CAKeyfram…
CGAffineTransform是二维的仿射变换,可以进行位移,旋转,缩放,CGAffineTransform实际上是一个矩阵. CGAffineTransform { CGFloat a, b, c, d;  CGFloat tx, ty; }; 对证的矩阵: |a, b, 0| |c, d, 0| |tx,ty,1| 方法名 描述 CGAffineTransformIdentity 单位仿射变换,对应的矩阵:[ 1 0 0 1 0 0 ] CGAffineTransformMake(CGF…
如何修改控件状态• 可见,确实需要经常修改控件状态• 那如何去修改控件的状态呢?方法很简单➢ 每一个UI控件都是一个对象➢ 修改UI控件的状态,其实就是修改控件对象的属性➢ 比如修改UILabel显示的文字,就修改UILabel对象的text属性即可➢ 比如修改UIImageView显示的图片,就修改UIImageView对象的image属性即可• 不难想到,每一个UI控件肯定都有很多属性,比如:➢ UIProgressView进度条控件有progress属性(进度值)➢ UILabel和UIT…
在iOS中,我们是不可以直接访问控件中frame的结构体的成员的,因此我们需要分三步来改变一个UI控件的位置,大小 一.frame用法 frame的结构体类型为: struct CGRect { CGPoint origin; CGSize size; }; 定义中间变量接收,然后赋值    //得到button控件的frame赋值为自定义变量 CGRect frame= self.btnImage.frame;    //修改结构体变量   frame.origin.y-=10;    //重…
第二天 *******图片的放大,和缩小 (去掉自动的布局) -(IBAction ) zoomFrame:(UIbutton *) button{ CGRect frame= self.iconButton.frame; // CGRect frame= self.iconButton.bounds; 用bounds的放大 if(button.tag){ //1 //放大 frame.size.width+=; frame.size.height+=; }else { frame.size.w…
iOS开发UI篇—transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建“基于控件初始位置”的形变 CGAffineTransformMakeTranslation(平移) CGAffineTransformMakeScale(缩放) CGAffineTransformMakeRotation(旋转) (2) 创建“基于transform参数”的形变…
如果想在底层做一些改变,想实现一些特别的动画,这时除了学习Core Animation之外,别无选择. 最近在看<iOS Core Animation:Advanced Techniques>这本书籍,尚有所收获,并将之记录下来. CALayer如果将UIView说成是视图,那么CALayer就是图层了.每一个 UIView 的身后对应一个 Core Animation 框架中的 CALayer:每一个 CALayer 都是 UIView 的代理.可以尝试运行下面的代码,会发现打印是一样的内存…
CoreGraphics框架中的CGAffineTransform类可用于设定UIView的transform属性,控制视图的缩放.旋转和平移操作: 另称放射变换矩阵,可参照线性代数的矩阵实现方式0.0 这里附上的CGAffineTransform官方文档: https://developer.apple.com/library/ios/documentation/GraphicsImaging/Reference/CGAffineTransform/index.html 总得来说,这个类中包含…
今天看了一下Quartz 2D绘图,我只想说:不要把绘图和动画那些东西当做一个很复杂的东西,其实只要你认真看还是可以理解的.他们并不难.啰嗦了几句,现在直接进入正题: 前提是我们必须新建一个singleviewApplication.具体新建就不多说了,然后我们自己写一个UIView的子类,然后创建子类加载到故事板中.(你也可以直接把故事板中的ViewControler的view的父类定义为你自己创建的类),然后我们的操作都是在drawRectangular:方法中实现的:(我采用的是直接修改V…
1.Autolayout中“constrain to margins” Autolayout中的页面边距的问题ios8以后的UIView增加了layoutMargins属性,在Storyboard/IB中使用AutoLayout布局时,一般都取消勾选“constrain to margins”,如果勾选,即使你在约束里设置某个控件的上下左右均为0,当查看其真实坐标时,发现x=16,y=20,而且控件的右侧离self.view的最右边也有16point的间距,下边没有间隙.故一般取消勾选即可. 2…
CoreGraphics.h CGAffineTransform rotation = CGAffineTransformMakeRotation(M_PI_2);[xxx setTransform:rotation];呵呵就这么简单的两行代码就可以实现了! 顺便记录一些常量,以后用的着! #define M_E         2.71828182845904523536028747135266250   e#define M_LOG2E     1.442695040888963407359…
1.geometryFlipped   设置为yes,则子图层或者子视图本来相对于左上角放置 改为 相对于左下角放置: 2.contents 3.contentGravity: kCAGravityCenter kCAGravityTop kCAGravityBottom kCAGravityLeft kCAGravityRight kCAGravityTopLeft kCAGravityTopRight kCAGravityBottomLeft kCAGravityBottomRight kC…