首先构造一个字体,我在初始化种构造了一个公共使用的。
UIFont *mFont = [UIFont fontWithName:@"Arial" size:20.0];
我是这样构造绘制内容的 NSString* tstr = [NSString stringWithFormat:@"FPS:%d",mFPS];
然后是绘制,绘制字体的颜色是系统当前设置的颜色
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 0.5);
CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
绘制文字
+(void)draw:(CGContextRef) context
String:(NSString*)aString
AtPoint:(CGPoint)aPoint
withFont:(UIFont *)aFont
withMode:(CGTextDrawingMode)aMode
{
CGContextSetTextDrawingMode (context, aMode); // 5
[aString drawAtPoint:aPoint withFont:aFont];
}
这个函数可以自动换行绘制文字
+(void)draw:(CGContextRef) context
String:(NSString*)aString
InRect:(CGRect)aRect
withFont:(UIFont *)aFont
withMode:(CGTextDrawingMode)aMode
{
CGContextSetTextDrawingMode (context, aMode); // 5
[aString drawInRect:aRect withFont:aFont];
}
CGTextDrawingMode 是个不错的东东,可以直接绘制出很多效果的文字
sdk里面有详细的介绍,看一下把。很不错的
这里修改一下我的fps计算函数,可以绘制出fps效果
-(void)caculateFPS:(CGContextRef)context AtPoint:(CGPoint)aPoint Show:(BOOL)aShow
{
CFTimeInterval atime = CFAbsoluteTimeGetCurrent();
float dt = atime - mOldTime;
if(dt >= 1)
{
mFPS = mTmpFPS;
mOldTime = atime;
mTmpFPS = 1;
}else{
mTmpFPS++;
}
if(aShow)
{
//CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 0.5);
CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1.0);
NSString* tstr = [NSString stringWithFormat:@"FPS:%d",mFPS];
[SEImage draw:context
String:tstr
AtPoint:aPoint
withFont:mFont
withMode:kCGTextFill];
}
}
阅读(1280) | 评论(0) | 转发(1) |