重绘(刷帧)

来源:互联网 发布:奶酪陷阱知乎 编辑:程序博客网 时间:2024/06/07 10:46
重绘(刷帧)核心方法:[self.circleView setNeedsDisplay];    1、自定义View///////////////////////////////////////////////////////////////#import <UIKit/UIKit.h>@interface ShuaZhengView : UIView@property(nonatomic, assign) float radius;//圆半径@end///////////////////////////////////////////////////////////////@implementation ShuaZhengView/** *  默认只会调用一次,在第一次显示调用显示,这个方法只能系统调用,不能手动调用 */- (void)drawRect:(CGRect)rect{    CGContextRef ctx = UIGraphicsGetCurrentContext();        CGContextAddArc(ctx, 125, 125, self.radius, 0, M_PI * 2, 0);        CGContextFillPath(ctx);}/** *  重写set方法,并且将刷帧的方法封装进来 */- (void)setRadius:(float)radius{    _radius = radius;        //自己刷新    /**     *  重绘,这个方法会重新调用drawRect方法,前面drawRect会清理掉     */    [self setNeedsDisplay];        //[self setNeedsDisplayInRect:<#(CGRect)#>]; 更加精确,局部刷新}@end///////////////////////////////////////////////////////////////控制器控制1、将对应的自定义View拖拽到控制器中2、监听对应的方法3、监听方法内写改变视图的值,因为重写了控制器,这样每次设置到都会刷新核心方法:[self.circleView setNeedsDisplay];    这个方法,在视图内负责刷新,封装到视图自己方法内

0 0