`
stephen830
  • 浏览: 2964118 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

UIView的drawRect方法

 
阅读更多

UIView的drawRect方法

 

 

自定义一个UIView类,代码如下:

 

MainView.h

#import <UIKit/UIKit.h>


@interface MainView : UIView {

}

@end
 

 

 

MainView.m

#import "MainView.h"


@implementation MainView


- (id)initWithFrame:(CGRect)frame {
    
    self = [super initWithFrame:frame];
    if (self) {
        // Initialization code.
    }
	self.backgroundColor=[UIColor cyanColor];
	
	
	
    return self;
}


// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
    // Drawing code.
	//获得处理的上下文  
	CGContextRef context = UIGraphicsGetCurrentContext();  
	//设置线条样式  
	CGContextSetLineCap(context, kCGLineCapSquare);   
	//设置线条粗细宽度  
	CGContextSetLineWidth(context, 1.0);   
  
	//设置颜色  
	CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);   
	//开始一个起始路径  
	CGContextBeginPath(context);   
	//起始点设置为(0,0):注意这是上下文对应区域中的相对坐标,  
	CGContextMoveToPoint(context, 0, 0);   
	//设置下一个坐标点  
	CGContextAddLineToPoint(context, 100, 100);   
	//设置下一个坐标点  
	CGContextAddLineToPoint(context, 0, 150);  
	//设置下一个坐标点  
	CGContextAddLineToPoint(context, 50, 180);  
	//连接上面定义的坐标点  
	CGContextStrokePath(context);
	
}


- (void)dealloc {
    [super dealloc];
}


@end
 

 

 

 

 

在Xcode中创建Application-Base项目:(这里项目名假设为 Test95

 

Test95AppDelegate.h代码:

#import <UIKit/UIKit.h>
#import "MainView.h"

@interface Test95AppDelegate : NSObject <UIApplicationDelegate> {
    UIWindow *window;
	MainView *mainView;
}

@property (nonatomic, retain) IBOutlet UIWindow *window;

@end
 

 

 

Test95AppDelegate.m中的didFinishLaunchingWithOptions方法代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
    
    // Override point for customization after application launch.
	CGRect wholeWindow=CGRectMake(0, 20, 320, 320);
	mainView=[[MainView alloc]initWithFrame:wholeWindow];
	
	[self.window addSubview:mainView];
    [self.window makeKeyAndVisible];
    
    return YES;
}
 

 

 

结果如下图:


 

 

 

 

 

 

  • 大小: 20.7 KB
分享到:
评论

相关推荐

    BMDrawRectView:带有热插拔 drawRect 方法块的 UIView 子类 - 方便的花花公子

    BMDrawRectView概念这个极其简单的类背后的想法是,每当我想做一些简单、快速或基于块的动态方式时,都不需要创建 UIView 子类。 使用这个小工具,您可以跳过这一步,可以动态或静态,但最重要的是,可以随心所欲地...

    UIView-Copy:向 UIView 添加复制方法

    //If you need drawRect: drawing UIView *copiedView = [originalView pm_copy]; //if you need mask layer property UIView *copiedViewWithDrawRect = (UIView *)[originalView pm_copyWithNeedsDrawRect:YES]; /...

    点击三个点连成一个三角形(IOS面试题)

    在iOS中,利用UIView绘图,重写UIView的drawRect方法,点用setNeedsDisplay方法系统会自动调用drawRect完成绘图。(北京智美方成网络科技有限公司面试题), 详细说明: https://a3.work/a/oc/106.html

    基于MATLAB+C语言的ios绘图涂鸦板设计.zip

    资源包含文件:设计报告word+源码 1.完成一个最基本的涂鸦板 2.给涂鸦板加上颜色选择功能,...重写drawRect方法,根据用户手指的移动,画出涂鸦 详细介绍参考:https://blog.csdn.net/newlw/article/details/123175431

    JBInterfaceController:向 WatchKit 界面控制器添加类似 UIViewController 的功能

    子类通过调用 updateInterface 方法(在 UIView drawRect 和 layoutSubviews 概念之后轻轻建模)使更新界面元素变得容易。 我的表行(我没有包括在这个例子中)是 JBInterface 子类,它们只是使自己无效。 然后...

    IOS重绘View演示

    IOS中drawRect方法的使用, 在需要重绘的时调用setNeedsDisplay方法

    画曲线图 UIView

    类似股票的折线图,数据,可以随意定制,颜色等 代码条理清晰

    画板(iPhone源代码)

     利用UIVIew的drawrect方法,创建画板,能定义线条粗细与线条颜色,支持重做(redo)和撤销(undo)操作,并且支持将绘画保存到本地。 小编注:感谢作者@_ai夏夏 分享代码于Code4App。 [优才 · Code4App]编译...

    iOS 面试题

    定制uiview直接用图形画底层控件一般用drawRect:(CGRect)rect; 我用的很少 我一般组合定制控件 9. view 和 viewcontroller 的 关系 UIviewController其实相当于一个容器,一个控制器,里面包含了一个根的uiview ...

    CXFocusView:突出显示视图集合的 UIView 覆盖(用于教程)

    ✓ UIView 类别便利方法 self.view.focusView = [[CXFocusView alloc] init]; self.view.focusView.backgroundColor = [UIColor orangeColor]; self.view.focusView = nil; ✓ 支持带有淡入淡出效果的动画。 ...

    CXOverlay:基本 UIView 覆盖(用于教程等)

    ✓ UIView 类别便利方法 self.view.overlay = [[CXOverlay alloc] init]; self.view.overlay.cutout = CGRectMake(24.0f, 24.0f, 44.0f, 44.0f); self.view.overlay.backgroundColor = [UIColor orangeColor]; ...

    DSCollectionView

    setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调用layoutSubViews,就可以处理子视图中的一些数据。  宗上所诉,setNeedsDisplay...

    IOS 开发中画扇形图实例详解

    我们知道了这个方法,就可以在自定义UIView的子类的- (void)drawRect:(CGRect)rect里面绘图了,关于drawrect的调用周期,网上也是一找一大堆,等下我会整理一下,转载一篇供你们参考。 废话少说,下面直接开始代码...

    12个iOS技术面试题及答案总结

    当一个UIView需要执行绘制操作时,drawRect:方法就会被调用,覆盖此方法让你获得绘图操作的机会。当drawRect:方法被调用,当前图形的上下文也被设置为属于视图的图形上下文,你可以使用Core Graphic或者U

    IOSdrawRect实现雪花飘落效果

    本文实例为大家分享了IOSdrawRect实现雪花飘落效果的具体代码,供大家参考,具体内容如下 绘制原理: 雪花效果最主要的思路就是在于循环产生带雪花图片的imageView, 产生的雪花的imageview的 x、y、宽、下落的速度...

    iOS优雅的将CALayer旋转360度示例代码

    当UIView需要显示到屏幕上时,会调用 drawRect:方法进行绘图,并且会将所有内容绘制在自己的层上,绘图完毕后,系统会将层拷贝到屏幕上,于是就完成了UIView的显示。 * 换句话说,UIView本身不具备显示

    cutPictureCode

    之前写过图形上下文裁剪处理后制作头像那样的实现,是在UIView的drawRect里面实现的, 当然也可以在UIImage里面实现,这样就可以直接返回一个UIImage对象,直接可以拿来用。现在写的这个是关于位图上下文的裁剪。也...

    iOS上下文实现评价星星示例代码

    直接重写 drawrect 方法,在 drawrect 用 drawimage 画出星星,根据 currentValue 画出不同类型的星星,当用户点击视图时,改变 currentValue,并根据改变后的 currentValue 重新画出星星。 展示图: 代码: 自定义...

    iOS开发中CALayer使用的基本教程

    一、简单介绍 在iOS中,你能看得见摸得着的东西基本上都是UIView,比如一个按钮...当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘图完毕后,系统会将图层拷贝到屏

Global site tag (gtag.js) - Google Analytics