2014-01-14 8 views
0

я эту функцию, которая в основном добавляет данный ниже текст данного изображения, я хочу, чтобы углы textRect раунда, вы можете помочь мне понять, как использовать UIBezierPath в этом кодеповорачивая углы CGRect круглые, как с UIView

-(UIImage*) overlapText:(NSString*) p_text inImage:(UIImage*) p_image atPoint:(CGPoint) p_point 
{ 
    p_point.y += p_image.size.height-5; 

    UIFont *font = [UIFont boldSystemFontOfSize:11]; 
    UIGraphicsBeginImageContext(CGSizeMake(p_image.size.width+15,p_image.size.height+15)); 
    CGFloat imageX = (p_image.size.width+10)/2 - (p_image.size.width/2); 
    [p_image drawInRect:CGRectMake(imageX,0,p_image.size.width,p_image.size.height)]; 

    CGRect textRect = CGRectMake(0, p_point.y, p_image.size.width+15, p_image.size.height+10); 

    [[UIColor colorWithRed:(70/255.0) green:(70/255.0) blue:(70/255.0) alpha:1] set]; 
    CGContextFillRect(UIGraphicsGetCurrentContext(), textRect); 


    [[UIColor whiteColor] set]; 
    [p_text drawInRect:textRect withFont:font lineBreakMode:NSLineBreakByTruncatingTail alignment:NSTextAlignmentCenter]; 


    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return newImage; 
} 

ответ

0

Ваш контекст изображения текущий контекст, так что просто построить закругленный прямоугольник с bezierPathWithRoundedRect:cornerRadius:, установите цвет заливки, и сказать, путь Безье к fill. Это одна строка кода (ну, два, если считать настройки цвета заливки):

[[UIColor colorWithRed:(70/255.0) green:(70/255.0) blue:(70/255.0) alpha:1] set]; 
[[UIBezierPath bezierPathWithRoundedRect:textRect cornerRadius:5] fill]; 

Не стесняйтесь играть с числами здесь; например, вам может понадобиться другой радиус угла. Эксперимент!

+0

Не могли бы вы помочь мне с кодом? удалить CGRect? –

+0

CGRect - это просто путь. Я говорю, использую другой путь. Вы говорите 'CGContextFillRect'. Это рисует заполненный прямоугольник. Я предлагаю вам нарисовать заполненный округленный прямоугольник. – matt