`

iPhone 简单的重画

UP 
阅读更多

在UIView中,重写drawRect: (CGRect) aRect方法,可以自己定义想要画的图案.且此方法一般情况下只会画一次.也就是说这个drawRect方法一般情况下只会被掉用一次.

 

当某些情况下想要手动重画这个View,只需要掉用[self setNeedsDisplay]方法即可.

drawRect掉用是在Controller->loadView, Controller->viewDidLoad 两方法之后掉用的.所以不用担心在控制器中,这些View的drawRect就开始画了.这样可以在控制器中设置一些值给View(如果这些View draw的时候需要用到某些变量值).

 

下面是一个drawRect 方法片段的一个示列,画一条线,线的两端各带一个小圆圈

 

- (void) drawRect: (CGRect) aRect
{
	NSLog(@"DRAW RECT...");
	
	// Get the current context
	CGContextRef context = UIGraphicsGetCurrentContext();
	CGContextClearRect(context, aRect);
	
	// Set up the stroke and fill characteristics
	CGContextSetLineWidth(context, 3.0f);
	CGFloat gray[4] = {0.5f, 0.5f, 0.5f, 1.0f};
	CGContextSetStrokeColor(context, gray);
	CGFloat red[4] = {0.75f, 0.25f, 0.25f, 1.0f};
	CGContextSetFillColor(context, red);
	
	// Draw a line between the two location points
	CGContextMoveToPoint(context, self.loc1.x, self.loc1.y);
	CGContextAddLineToPoint(context, self.loc2.x, self.loc2.y);
	CGContextStrokePath(context);
	
	CGRect p1box = CGRectMake(self.loc1.x, self.loc1.y, 0.0f, 0.0f);
	CGRect p2box = CGRectMake(self.loc2.x, self.loc2.y, 0.0f, 0.0f);
	float offset = -8.0f;
	
	// circle point 1
	CGMutablePathRef path = CGPathCreateMutable();
	CGPathAddEllipseInRect(path, NULL, CGRectInset(p1box, offset, offset));
	CGContextAddPath(context, path);
	CGContextFillPath(context);
	CFRelease(path);
	
	// circle point 2
	path = CGPathCreateMutable();
	CGPathAddEllipseInRect(path, NULL, CGRectInset(p2box, offset, offset));
	CGContextAddPath(context, path);
	CGContextFillPath(context);	
	CFRelease(path);
}
分享到:
评论

相关推荐

    iphone 简单动画示例源码

    "iPhone简单动画示例源码"是一个很好的学习资源,它展示了如何在iOS应用中实现基础的动画效果。在这个项目中,开发者通过点击按钮触发一个动画,使得按钮在屏幕上漂浮,营造出动态的视觉效果。 首先,我们来探讨...

    iphone开发 动画类库

    `CABasicAnimation`适用于简单的线性动画,而`CAKeyframeAnimation`则支持路径动画等更复杂的效果。通过设置`keyPath`为`transform.rotation.z`,并指定合适的`fromValue`和`toValue`,即可实现视图绕Z轴的旋转。 2...

    iphone的各种动画效果

    iPhone的各种动画效果不仅能让用户界面更加生动有趣,还能增强交互性,使应用的操作流程更加流畅。本资料包“iphone的各种动画效果”提供了一系列的动画实例,旨在帮助开发者直接查看并学习如何在自己的应用中实现...

    iphone SceneTransition动画转换

    本项目聚焦于iPhone上的SceneTransition动画转换,包含了大约20多种不同的动画效果,适用于各种应用场合。这些动画不仅增加了应用程序的视觉吸引力,还使得用户在操作时更加直观和舒适。 首先,我们要理解...

    iPhone帧动画例子

    这个"iPhone帧动画例子"可能是一个简单的应用,演示了如何在iPhone上实现帧动画,并通过开始和暂停两个按钮来控制动画的播放状态。下面我们将深入探讨帧动画的基本概念、实现方法以及如何在代码中添加控制逻辑。 帧...

    iphone用Animation实现动画效果

    在本教程中,我们将深入探讨如何使用`UIView`的`animation`方法来创建简单的上、中、下移动动画效果。这涉及到iOS开发中的基本动画原理,以及如何通过代码控制视图的行为。 首先,我们要理解`UIView`动画的基本概念...

    iphone开发之画板

    这个“iphone开发之画板”的项目显然聚焦于利用苹果的UIKit框架来实现一个简单的绘画应用程序。以下是一些关键知识点的详细说明: 1. **MVC模式**:MVC(Model-View-Controller)是iOS开发中的核心设计模式。在这个...

    防iphone动画效果

    标题提到的“防iPhone动画效果”可能是指Android开发者尝试实现与iOS设备上相似的流畅、精致的动画,以增强应用的吸引力和用户互动性。Android系统提供了多种动画机制,使得开发者能够创建出丰富多彩的视觉效果。...

    iphone 咸鱼图片动画

    在这个"iPhone咸鱼图片动画"的实现中,我们很可能会使用UIView动画,因为它更直观且易于使用。下面是一些关键步骤: 1. **数据模型设计**:为了管理多张图片,我们需要一个数据模型来存储图片URL或本地路径。可以...

    iphone动画实现代码

    iPhone应用程序中的动画可以分为多个层次,从简单的视图平移和旋转到复杂的自定义动画。本文将深入探讨如何在iPhone应用中实现动画,特别是基于代码实现`AnimatedImageView`的动画效果。 首先,我们需要了解iOS中的...

    仿IPhone图标抖动效果

    以下是一个简单的抖动动画实现: ```java public class ShakeAnimation extends ValueAnimator { private View targetView; private float distance = 10f; // 抖动的幅度 private boolean isShaking; public ...

    iphone 动画实现

    UIImageView类通常用于显示静态图片,但也可以用来播放图像序列,从而实现简单的动画效果。通过设置UIImageView的`animationImages`属性为一个包含多张图片的数组,并设置`animationDuration`和`...

    iphone动画效果

    4. `CABasicAnimation`和`CAKeyframeAnimation`:前者用于简单的属性动画,后者支持关键帧动画,可以创建更复杂的路径和时间曲线。 四、动画类型 1. 视图动画:通过修改视图的属性(如位置、大小、透明度等)来...

    黑底白苹果开机动画.zip

    5. **PNG和GIF格式**:这两种图像格式常用于创建动画,PNG支持透明度且无损压缩,而GIF支持简单的循环动画,但颜色表现有限。在制作开机动画时,开发者可能会根据设备性能和效果需求选择其中一个格式。 6. **安全性...

    iPhone下的popover

    2. **呈现方式**:Popover在iPhone上可能以全屏模态视图、半透明遮罩层或者简单的下拉菜单等形式出现,以适应小屏幕环境。 3. **交互设计**:在iPhone上,考虑用户体验是至关重要的。Popover需要有清晰的入口和退出...

    iphone核心动画

    - **UIView动画**:`UIView`提供了简单的方法来执行动画,实际上是调用Core Animation。 - **自定义动画**:开发者可以通过`UIView`或直接使用Core Animation来创建自定义动画。 ### 结论 Core Animation是iOS开发...

    wifi动画展示...

    在Android系统中,Wi-Fi动画不仅是一个简单的图形变化,而是涉及到用户界面(UI)设计、系统资源管理和网络状态反馈等多个方面的技术。这篇详细讲解将围绕Android Wi-Fi动画的实现原理、UI设计原则、系统级交互以及...

    iPhone/iPad Keynote

    完全针对 iPad、iPhone 和 iPod touch 构建,使创建包含动画图表和过渡效果的世界一流水平演示文稿变得如此简单,只需触摸和轻按即可。使用全屏幕视图在 iPad、iPhone 或 iPod touch 上演示。或者使用视频镜像在 HDTV ...

    闪电iPhone视频转换器 v11.8.0.zip

    本iPhone视频转换器还支持各种视频文件的播放预览,支持更换软件皮肤,操作极为简单,支持批量转换,支持自动关机。 闪电iPhone视频转换器功能介绍: 1.可以将各种流行的视频音频格式转换为苹果iPhone手机所支持的...

    Axure工具ios8和iphone手机各种组件(部件)画原型必备

    总结来说,"Axure工具ios8和iphone手机各种组件(部件)画原型必备"资源对于从事iOS应用设计的人员来说是一大利器。它包含了一系列符合iOS8设计规范的组件,能够帮助设计师快速构建出美观、真实的原型,提升设计质量和...

Global site tag (gtag.js) - Google Analytics