重绘(刷帧)
核心方法:[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]; 这个方法,在视图内负责刷新,封装到视图自己方法内
重绘(刷帧)
最新推荐文章于 2022-11-18 15:46:44 发布