在UIView中,

1、自定义画图,类似android的onDraw()

- (void)drawRect:(CGRect)rect;

is invoked automaticall,never call it directly!!

2、刷新视图,类似android的invalidate()

- (void)setNeedsDisplay;

When a view needs to be redrawn,use:

3、在非主线程中调用,需使用如下方法:

- (void)performSelector:(SEL)aSelector onThread:(NSThread *)thr withObject:(id)arg waitUntilDone:(BOOL)wait
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait

4、setNeedsDisplay是不阻塞的,
需要自己制造阻塞,
setNeedsDisplay我理解就是告诉系统,等会帮哥把这块重新画一下。
系统就知道了,等系统有空了,他就一起画了,
如果想立即画出来,可能要用setNeedsLayout,
或者不用drawInRect系列的方式,直接改view.image或者文字,加动画等方式实现吧。

5、setNeedsDisplay和layoutSubViews

首先两个方法都是异步执行的。而setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到UIGraphicsGetCurrentContext,就可以画画了。而setNeedsLayout会默认调 用layoutSubViews,就可以处理子视图中的一些数据。
宗上所诉,setNeedsDisplay方便绘图,而layoutSubViews方便出来数据。



更多相关文章

  1. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  2. Android打包jar的两种方法
  3. 【安卓笔记】touch事件的分发和消费机制
  4. Android(安卓)Fragment的生命周期详解
  5. Android(安卓)TextView中显示图片
  6. Android(安卓)完全隐藏状态栏方法
  7. Android开发Android(安卓)studio之gradle打包apk重命名的方法
  8. Android开发环境搭建(WINDOWS VERSION)
  9. Android(安卓)多媒体框架(2)—— android_media_MediaCodec.cpp源

随机推荐

  1. android 6 sdk/ndk下载地址
  2. android 跳转到应用通知设置界面(Android
  3. Android多媒体开发(5)————利用Android(
  4. Android(安卓)中三种使用线程的方法
  5. Android(安卓)原生获取地理位置
  6. ANDROID NDK文档系列--(一)Android(安卓)ND
  7. android之单选框
  8. Android触控事件
  9. 1、What Makes an Android(安卓)Applicat
  10. Android(安卓)问题(一)