`
咖啡动力
  • 浏览: 444300 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

iphone多线程使用setNeedsDisplay重绘drawRect

阅读更多
uiview子类{
初始化方法
-(id)initWithFrame:(CGRect)frame{
初始化类变量
t=[test new];
}

//前台绘画
-(void)drawRect:(CGRect)rect{
可以访问t变量
if(t != nil){
获取context
}
}
//后台读取数据
-(void)read{


}

-(void)run{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
[self performSelectorOnMainThread:@selector(setNeedsDisplay) vithObject:nil waitUntilDon:NO];
[NSThread sleepForTimeInterval:0.5];
[pool drain];
}


-(void)start{
NSThread *drawUI=[[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil];
[drawUI start];

NSThread *readn=[[NSThread alloc] initWithTarget:self selector:@selector(read) object:nil];
[readn start];

}
}

注意这个方法中的initWithFrame,如果不用这个方法初始化,重绘drawRect的时候类变量t的计数会为0.



分享到:
评论
1 楼 langezi_ 2012-07-10  
                


怎么没有源码啊~    

相关推荐

    IOS重绘View演示

    本文将深入探讨`drawRect:`方法及其在iOS重绘视图中的应用,以及与Quartz 2D图形库的结合使用。首先,我们需要理解`drawRect:`方法的原理。 `drawRect:`是UIKit框架中的一个方法,它属于UIView类。当一个UIView的`...

    iOS的Swift中drawRect:的使用

    `drawRect:`是UIView类的一个方法,它的原型是`override func drawRect(rect: CGRect)`, 其中`rect`参数代表了需要重绘的矩形区域。当视图需要更新其显示内容时,系统会自动调用这个方法。开发者可以在这个方法内部...

    ios - 文本重绘

    5. **响应文本变化**:当文本内容或样式发生改变时,需要重新创建CTFrame并调用setNeedsDisplay方法通知系统重绘视图。 6. **性能优化**:为了提高重绘效率,可以考虑使用异步绘制或者Core Graphics缓存策略,减少...

    iOS的Object-C中drawRect:的使用

    通常,当视图的frame、bounds或transform属性发生变化,或者通过`setNeedsDisplay`或`setNeedsDisplayInRect:`方法手动标记视图需要刷新时,系统会调用`drawRect:`。 在`drawRect:`方法中,你可以使用Core Graphics...

    DrawRect Demo代码

    可以通过设置`needsDisplay`属性或者调用`setNeedsDisplay()`方法来控制视图的重绘。 5. **其他绘图操作**:除了矩形,`drawRect:`还可以用来绘制更复杂的图形,如线条、曲线、圆形等。使用`CGContextMoveToPoint()...

    iOS SetNeedDisplay

    4. **多线程**:需要注意的是,`drawRect:` 总是在主线程中执行,因此不应该在此方法内执行耗时的操作,以免阻塞UI的响应。 5. **Core Graphics 和 UIKit**:在 `drawRect:` 方法中,通常会使用 Core Graphics 或 ...

    iOS中多线程的经典崩溃总结大全

    iOS多线程经典崩溃总结大全 iOS开发中多线程崩溃是非常常见的,下面将总结一些经典的崩溃...多线程崩溃是iOS开发中的一大挑战,需要开发者细心理解多线程机制,避免常见的崩溃场景,使用正确的解决方法来避免崩溃。

    iphone手势识别和手绘图线

    5. 实时刷新视图以显示新绘制的线条,这可以通过调用setNeedsDisplay()方法来完成。 总的来说,"Gesturegame02"项目结合了iPhone的手势识别技术和手绘图线功能,为用户提供了独特的互动体验。开发者需要熟悉iOS的...

    swift-drawrect实现的圆形进度条

    `drawRect`是UIView的一个方法,它在视图需要重绘时被调用。在这个方法中,我们可以自定义绘制视图的内容,包括线条、形状、颜色等。在`drawRect`中进行的任何绘制操作都会被系统缓存,直到下一次视图需要更新时再...

    drawrect中实现橡皮擦功能(非背景色填充)

    如果你的视图没有自动调用`drawRect:`,则需要手动触发重绘,例如,通过调用`setNeedsDisplay`。 3. **设置橡皮擦属性**:在`CGContext`中,你可以设置线宽、颜色和混合模式。橡皮擦通常表现为无色(透明),线宽...

    Quartz2D绘画-下载进度

    这通常通过调用`setNeedsDisplay()`或`setNeedsDisplay(in:)`方法实现,系统会自动调用`drawRect:`或`draw(_:)`进行重绘。 4. **圆形进度** 对于圆形进度,我们可以使用`addArc`方法创建一个弧形路径,其起始角度...

    iPhone SDK开发 —— 无断点画任意轨迹

    在iOS开发中,使用iPhone SDK进行应用程序开发时,有时我们需要实现一些高级的用户交互功能,例如让用户自由地在屏幕上绘制连续、平滑的任意轨迹。这个主题“iPhone SDK开发 —— 无断点画任意轨迹”就是关于如何在...

    swift-CADisplayLink一定时器其根本利用刷帧和屏幕频率一样来重绘渲染页面.

    `CADisplayLink`定时器就是利用这个特性,每当屏幕准备绘制新的一帧时,它就会触发一次回调,使得开发者可以在合适的时间进行视图的更新和重绘。这种机制保证了视图的平滑动画效果,因为它与硬件的刷新周期完美同步...

    iphone画饼图和扇形

    可以考虑使用CALayer的`setNeedsDisplay(in:)`方法局部更新需要改变的扇形,而不是每次数据变化都重新绘制整个图表。 7. **CocoaChina资源**: 提到的"CocoaChina"可能是一个包含示例代码或教程的平台,对于初学者...

    IOSdrawRect实现雪花飘落效果

    `drawRect:` 在视图需要重绘时被自动调用,比如视图尺寸改变、视图从不可见变为可见或者当调用了`setNeedsDisplay`或`setNeedsDisplayInRect:`方法时。在这个过程中,开发者可以覆盖`drawRect:`方法,提供自定义的...

    DSCollectionView

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

    简单的绘图实现

    - 避免在`drawRect:`中进行复杂的计算或频繁调用,因为这会导致重绘效率降低。可以将计算结果缓存,或者使用离屏渲染来提高性能。 6. **MarkerRenderer**: - 这个文件名可能是自定义渲染器的名字,用于处理特定...

    iphone 开发 放大镜效果

    使用`setNeedsDisplay`方法强制视图重绘,以显示更新的效果。 6. **动画过渡**: 为了提供更流畅的用户体验,可以添加一些动画效果,比如平滑地改变放大镜的大小和透明度。 7. **性能优化**: 为了确保在移动设备上...

    iPhone开发UIView

    使用`setNeedsDisplay`或`setNeedsDisplayInRect:`可以手动触发重绘。 4. **触控事件处理**:`UIView`能响应用户触摸事件,通过`touchesBegan:withEvent:`, `touchesMoved:withEvent:`, `touchesEnded:withEvent:`...

    iphone开发

    总之,iPhone开发涉及多个层面,从基本的屏幕截图和图形绘制,到更高级的延时函数和动画效果的实现。理解并熟练运用这些技术是成为一名合格的iPhone开发者的基础。通过实践和不断学习,开发者可以创建出功能丰富且...

Global site tag (gtag.js) - Google Analytics