XMG合集
真挚的爱
这个作者很懒,什么都没留下…
展开
-
XMG 让一张图片由两个控件显示出来
1.通过设置contentRect设置图片的显示尺寸,取值是0~1self.topView.layer. contentRect=CGRectMake(0,0,1,0.5);self.topView.layer.anchorPoint=CGPointMake(0,5,1);self.bottom.layer.anchorPoint=CGPointMake(0.5,0);原创 2016-05-22 23:06:50 · 245 阅读 · 0 评论 -
XMG 绘制的方法 自己重定义UIImageView
1.[UIImageView alloc]initWIthImage:[UIImage imageName:@""]这样的话不需要给imageView尺寸。imageView的尺寸会和图片的大小保持一致2.普通的给定 尺寸的情况给自定义的view添加UIImage属性然后在setImage方法中写入[self setNeedDis原创 2016-05-08 11:26:45 · 290 阅读 · 0 评论 -
XMG Quartz2D 绘制文字和图片
1.label的sizeToFit 只可以用于普通文本,如果是富文本的话则达不到要求2.-(void)drawRect:(CGRect)rect{ NSString*str=@"eersagaa"; NSMutableDictionary*dict=[NSMutableDictionarydictionary];原创 2016-05-08 10:30:44 · 510 阅读 · 0 评论 -
XMG 画柱状图
通过BezierPath绘制矩形的方法进行绘制NSArray*array=@[@30,@30,@40];for(int i=0;i w=self.bound.size.width/2*array.count-1; x=i*2*w; h=[array[i] doubleValue]/100*self.bounds.size.height; y=self.b原创 2016-05-07 23:09:16 · 224 阅读 · 0 评论 -
XMG Quartz2D 继续绘图 绘制圆饼
1.[[UIColor redColor] setStroke]; //描边2.[[UIColor yellowColor]setFill]; //填充3.[[UIColor greenColor]set] //描边填充通用4.GRB 0-255 OC 中 0~1 -(void)drawRect:(CGRect)rect{原创 2016-05-07 20:51:02 · 220 阅读 · 0 评论 -
XMG 绘制形状
1.除非是绘制曲线直接使用原生的。如果绘制形状直接使用UIBezerPath 2. 命名原则,类方法以类名开头UIBezierPath bezierPathWithRect3.圆角半径 画圆的大小以每个顶点为圆心。给定的半径为半径画一个1/4圆。把周边的给切掉4.只有封闭的形状调用这个方法才有用[path fill]5.stroke 描边一下原创 2016-05-07 10:49:12 · 450 阅读 · 0 评论 -
XMG Quartz2D的简单使用
//// Quratz2DView.m// Quartz2D//// Created by 王宁 on 16/5/6.// Copyright © 2016年 ylshmacmini. All rights reserved.//#import "Quratz2DView.h"//Quartz@2D是一原创 2016-05-06 17:50:37 · 1235 阅读 · 0 评论 -
XMG 自动提示宏 #define keyPath(objc,keyPath) @(((void)objc.keyPath,#keyPath));
1.int a=((void)5,4) C语言逗号表达式默认会取右边的内容如果不写void的话 a会被报警告,写上void标明请忽略左边的内容插曲刚才弄得,已经上线的苹果产品如果需要下架的话,点击 价格与销售范围,然后点击下架。这个产品就会在AppStore 中移除。如果想再让改产品重新在Apple store中显示,那么再次让他上线就可以了。但是会有一定的时间延迟原创 2016-05-06 15:01:06 · 1040 阅读 · 0 评论 -
XMG 抽屉效果
1.比如说我创建了3个View-(void)viewDidLoad{ [ super viewDidLoad];[self setUpChild] ; UIPanGestureRecognizer *pan=[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(pan:)];原创 2016-05-06 13:58:32 · 253 阅读 · 0 评论 -
XMG 各种手势
1.创建单点手势 //创建点按手势 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tap:)]; tap.delegate = self; [_im原创 2016-05-05 22:42:13 · 577 阅读 · 0 评论 -
XMG 触摸事件的处理过程
1.自己本身并不处理,顺着响应者链条向上传递,将事件交给响应者进行处理2.touches默认做法:把事件传递到上一个响应者3. super是父类不是父控件原创 2016-05-04 21:10:46 · 340 阅读 · 0 评论 -
XMG CALayer隐式动画
1 .每个UIView内部都关联着一个CALayer对象,我们可以称CALayer为RootLayer手动创建的layer 有手动效果.操作非跟层layer的Animatable属性的时候存在隐式动画常用的boundsbackgroundsposition默认Layer的锚点为(0.5,0.5)原创 2016-05-15 09:49:38 · 279 阅读 · 0 评论 -
XMG 重写- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event方法
//重写这个方法,来完成一些指定的事件。比如说按钮被遮到下面了,但是我想让点击到这块区域的时候让按钮去相应点击- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{ //当前坐标系上的点转换到按钮上的点 CGPoint btnP = [selfconvertPoint:point to原创 2016-05-04 14:02:08 · 3446 阅读 · 1 评论 -
XMG CADisplayLink
1.在绘图的时候使用CADisplayLink因为用CADisplayLink创建的定时器,在每次屏幕刷新的时候会调用而setNeedDisplay也是不会立即去绘图,只是相当于做了一个标记。等待下一次刷新的时候才会调用这样的话,两者的刷新时间就一致了。源代码如下#import "DrawView.h"staticCGFl原创 2016-05-08 17:01:16 · 220 阅读 · 0 评论 -
XMG Core Animation简介
Core Animation 非常强大的动画API ,使用它可以做出非常酷炫的动画效果Core Animation可以用在OS X 和IOS操作系统Core Animtaion 的动画执行都是在后台执行的。不会阻塞主线程。CAAnimation 与 CAPropertyAnimation为抽象类CABasicAnimation为基本动画。原创 2016-05-19 10:32:10 · 230 阅读 · 0 评论 -
XMG 中间透明。四周不透明的蒙版
- (void)drawRect:(CGRect)rect { CGFloat w=rect.size.width; CGFloat h=rect.size.height; // int radius = rect.size.width/2.0; CGFloat curr原创 2016-05-22 22:38:14 · 773 阅读 · 0 评论 -
XMG 转盘相关
1.通过一张大的图片得到小的一部分CGImageRef imageR= CGImageCreateWithImageInRect(normalImage.CGImage, rect);UIImage*btnNormalImage=[UIImage imageWithCGImage:imageR];[btn setImage:btnNormalImage forSta原创 2016-06-04 15:53:31 · 268 阅读 · 0 评论 -
XMG 核心动画与UIView动画的区别
1.如果不需要与用户交互则使用核心动画,因为核心动画只是假象,并没有真实的改变UIView的属性值 UIView 必须通过改变属性值 才能完成动画// CABasicAnimation *anim = [CABasicAnimation animation];// // anim.keyPath = @"position"原创 2016-05-21 20:39:52 · 346 阅读 · 0 评论 -
XMG CAAnimationGroup动画组
1.如果想要同时执行很多动画,可以使用动画组CAAnimationGroup*animation=[CAAnimationGroup animation];CABasicAniamtion*s1;animation.animations=@[s1];[self.layer addAnimation:animation forKey:nil];原创 2016-05-21 17:00:48 · 251 阅读 · 0 评论 -
XMG 转场动画
// 转场动画 CATransition *anim = [CATransitionanimation]; anim.type =@"pageCurl"; anim.duration =2; [_imageView.layeraddAnimation:an原创 2016-05-19 23:47:12 · 266 阅读 · 0 评论 -
XMG Quartz2D 设置裁剪区域 最外面有圆环
1.唯一的区别就是在上一篇的基础上一开始绘制了一个填充的圆。画布的大小比刚才的裁剪区域大,这样就会在最外面有一圈圆环//源码#import "UIImage+Image.h"@implementation UIImage (Image)+ (UIImage *)imageWithClipImage:(UIImage *)image borde原创 2016-05-09 23:17:20 · 300 阅读 · 0 评论 -
XMG Quartz2D 设置裁剪区域
1.先获取位图上下文对象 UIGraphicsBeginImageContextWithOptions(image.size,NO, 0);2.设置裁剪区域 UIRectClip() / 这个只能裁剪矩形 UIBezierPath*path=[UIBezierPathbezierPathWithOvalInRect:原创 2016-05-09 21:12:24 · 426 阅读 · 0 评论 -
XMG Quartz2D 水印效果。非layer里面手动创建位图上下文,不是layer中drawRect系统自动创建上下文
1。 // 1.获取上下文(位图上下文)这个方法上下文都可以获取。不只是layer上下文 CGContextRef ctx = UIGraphicsGetCurrentContext();2. 在viewController中 我们需要手动的创建上下文对象。因为系统不会自动为我们生成上下文 0.获取上下文,之前的上下文都是在view的dra原创 2016-05-09 14:00:17 · 614 阅读 · 0 评论 -
XMG Quartz2D 矩阵操作
1.一旦我们想要获得上下文的话,设置上下文的一些状态旋转什么的,就需要用C的代码去获取,而不能用贝泽尔2、CGContextAddPath(cox,path.CGPath);3.平移 CGContextTranslateCTM(cox,100,100);4.缩放CGContextScaleCTM(cox,0.5,0.5);5.旋转CGContex原创 2016-05-08 20:47:10 · 308 阅读 · 0 评论 -
CGRectInset CGRectOffset UIEdgeInsetsInsetRect
CGRectInset CGRectOffset UIEdgeInsetsInsetRect //CGRectInset 将原来的矩形放大或者缩小,正表示缩小,-表示放大。CGRect rect= CGRectMake(20, 50, 100, 80); CGRect rect1=CGRectInset(rect, -10, 20); NSLog(@"%@",p(rect1));//转载 2016-05-08 18:08:19 · 482 阅读 · 0 评论 -
XMG UIBezierPath与CGContextRef
1.贝泽尔路径只有当stroke的时候才会添加到上下文当中如果想要在stroke之前就添加到上下文中的话// 把路径添加到上下文 // .CGPath可以UIkit的路径转换成CoreGraphics路径 CGContextAddPath(ctx, path.CGPath);如果用贝泽尔stroke 的话只认贝泽尔的状态,是不去管上下文的原创 2016-05-08 18:01:03 · 1465 阅读 · 0 评论 -
XMG CAKeyFrameAnimation
用贝泽尔曲线描绘了一个路径。然后让CAKeyFrameAnimation的path是这个。就可以描绘出这个曲线路径了 CAKeyframeAnimation*keyFrameAnimation=[CAKeyframeAnimationanimation]; keyFrameAnimation.keyPath=@"position";原创 2016-05-19 11:47:41 · 268 阅读 · 0 评论 -
XMG xib中不属于一个类的控件,拖线到指定的类中
1.比如我现在有一个view绑定为GreenView,我们按住control向类里面拖线的方式想要达到目的,显然拖不进去。例图如下那么我们此时还想要达到目的,就需要自己去GreenView的类内部去写IBo然后这面连接起来2.第二,大哥郝良建给做的扩展可以在.h或者.m中写一个NSObject的属性然后在xib中对应的位置创建一个NSObject的属原创 2016-05-04 13:47:53 · 637 阅读 · 0 评论 -
XMG 调用UIWindow hitTest方法
1.先判断UIWindow自己能不能接收事件,然后判断点在不在当前window上2.然后从最外面开始遍历子控件 以此用上面的方法进行判断3.产生的事件先是传递到UIApplication的事件队列当中 --->然后传递到UIWindow上面接着调用UIWindow的hittest方法4.从后往前遍历寻找最合适的View5.1.判断当前控件能否接收事件 if(self原创 2016-05-04 13:11:22 · 440 阅读 · 0 评论 -
XMG 解档与归档
// 如果一个自定义对象想要归档,必须遵守NSCoding协议,实现协议方法。@interface Person :NSObjectNSCoding>@property (nonatomic,assign) int age;@property (nonatomic,strong) NSString* name;@end//什么时候调用原创 2016-05-01 12:51:54 · 249 阅读 · 0 评论 -
XMG 偏好设置存储
也就是说传说中的NSUserDefault只要调用了NSUserDefault的话,就会在Library/Preference下创建一个UserDefault.plist的文件下。偏好设置存储好处: 1.不需要关心文件名 2.键值对的方式存储底层封装的是字典//ios7 之前设置完键值对,只是放到缓存中,不会和硬盘同步,如果想和硬盘同步的话则需要写入下面的这句话原创 2016-05-01 11:49:20 · 247 阅读 · 0 评论 -
XMG 应用沙盒的概念以及获取沙盒地址
每个IOS 应用都应该有自己的应用沙盒(应用沙盒指的是文件系统目录),与其他的文件系统隔离,应用必须待在自己的沙盒里,其他应用不能访问该沙盒应用沙盒的文件系统目录LayerDocumentsLibrary Cache Preferencetemp应用程序包:(上图的Layer)包含了所有的资源和可执行文件Documents:永久存储,Itun原创 2016-05-01 10:22:08 · 458 阅读 · 0 评论 -
XMG block的应用
1.block的作用 :跟函数和方法很像,其实就是用来保存一段代码块。等的恰当的时候调用2.什么时候使用block ,逆传:用block传值,处理网络请求的时候使用block来处理请求回来的数据网络数据先把展示到控件的代码保存到block,等请求来数据直接使用Block3.Delegate相当于打电话。block相当于小弟。通知小弟去做shiqif(_b原创 2016-04-30 23:58:28 · 230 阅读 · 0 评论 -
XMG Quartz2D 手势解锁(九宫格)
直接贴源码了#import "WNDrawView.h"@interface WNDrawView()@property(nonatomic,strong)NSMutableArray*dataArray;@end@implementation WNDrawView{ CGPo原创 2016-05-12 10:52:15 · 423 阅读 · 0 评论 -
XMG 通讯页面的创建
- (void)viewDidLoad { [superviewDidLoad]; // Do any additional setup after loading the view. // 设置导航条的标题 self.title =@"查看/编辑界面"; // 设置导航条右边的按原创 2016-04-30 17:57:07 · 228 阅读 · 0 评论 -
XMG 导航控制器push的时候下一个控制器的时候view的加载
// 点击cell的时候调用- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ // 加载storyboard UIStoryboard *storyboard = [UIStoryboardstoryboardW原创 2016-04-30 17:40:00 · 226 阅读 · 0 评论 -
storyBoard正传逆传代理解耦
1.手动跳转// 跳转到联系人界面 [selfperformSegueWithIdentifier:@"login2Contact"sender:nil];2.跳转之前执行的操作- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{原创 2016-04-30 16:46:28 · 395 阅读 · 0 评论 -
XMG tableView有数据的时候才有分割线
//默认设置一个空的尾部视图可以达到有数据的有分割线。不需要自定义视图 self.tableView.tableHeaderView=[[UIViewalloc]init];原创 2016-04-30 16:24:32 · 199 阅读 · 0 评论 -
XMG系列第一天代理解耦
@class XMGAddViewController,XMGContact;@protocol XMGAddViewControllerDelegate NSObject>@optional- (void)addViewController:(XMGAddViewController *)addVc didClickAddBtnWithContact:(XMG原创 2016-04-30 10:32:57 · 282 阅读 · 0 评论 -
XMG Quartz2D 图片擦除
实现的效果 擦除图片的模糊的地方清晰的地方显示出来第一步 创建位图上下文对象第二步 把外面的图片渲染到位图上下文对象上第三步 清除手指选定的区域 。清除后那部分变为透明。下面的部分显示出来第四步 把上下文得到的剩余的图片得到,然后给imgeView赋值第五步 关闭上下文对象源码如下 - (void)pan:(UIPanGestureRecog原创 2016-05-11 09:36:20 · 416 阅读 · 0 评论