0

ここに画像の説明を入力

これは Synch me アプリです。画像を連絡先の写真として表示し、下のテキスト付きの透明な四角形のようなメッセージを表示したいのですが、マップのように表示された画像で同じ四角形を作成したいのですが、

現在私がやっていることはこれです -

ここに画像の説明を入力]![ここに画像の説明を入力

最初の画像のように画像を変更したいだけです。私のメッセージはこの長方形のボックスに表示され、下の小さな画像はマップ画像のようになります。

これが私の現在のコードです:

-(UIImage *) drawText:(NSString*) text inImage:(UIImage*)image :(UIImage *)contact_picture
{
    UILabel *lblText=[[UILabel alloc]init];


    lblText.text=[NSString stringWithFormat:@"%@",text];
    lblText.font = [UIFont fontWithName:@"Helvetica-Bold" size:30.0f];



    UIFont *font =lblText.font;;
    if ([UIScreen instancesRespondToSelector:@selector(scale)]) {
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(320.0, 480.0), NO, 0.0f);
    } else {
        UIGraphicsBeginImageContext(CGSizeMake(320.0, 480.0));
    }

    CGContextRef context = UIGraphicsGetCurrentContext();
    [image drawInRect:CGRectMake(0,0,320.0,480.0)];
    [contact_picture drawInRect:CGRectMake(230,295,90,90)];

    CGRect rect = CGRectMake(20,120,320, 480);//Set Frame as per your Requirement
    CGContextSetRGBFillColor(context, 255, 255, 255, 1);



    [text drawInRect:CGRectIntegral(rect) withFont:font];
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}
4

1 に答える 1

0

「ジェニファーがチェックインした....」を示す長方形を意味する場合は、UIView を使用できます。

UIView *myRectangle = [[UIView alloc] initWithFrame:rectangleFrame];
[myRectangle setBackgroundColor:transparantColor];
myRectangle.layer.cornerRadius = 3.0;
[myRectangle.layer setMasksToBounds:YES];

[yourSuperView addSubview:myRectangle];

//add your text view and image to myRectangle

----------------------クォーツ版---------------------

角の半径で長方形を描き、透明色で塗りつぶします。

以下は、角の半径を持つ長方形を描画するコードです

- (void)rectangleInPath:(CGMutablePathRef)path WithWidth:(CGFloat)width Height:(CGFloat)height Radius:(CGFloat)radius Offset:(CGFloat)offset{

    CGPathMoveToPoint(path, NULL, offset, offset+radius);
    CGPathAddArcToPoint(path, NULL, offset, offset, offset+radius, offset, radius);
    CGPathAddLineToPoint(path, NULL, width-radius-offset, offset);
    CGPathAddArcToPoint(path, NULL, width-offset, offset, width-offset, radius+offset, radius);
    CGPathAddLineToPoint(path, NULL, width-offset, height-radius-offset);
    CGPathAddArcToPoint(path, NULL, width-offset, height-offset, width-radius-offset, height-offset, radius);
    CGPathAddLineToPoint(path, NULL, radius+offset, height-offset);
    CGPathAddArcToPoint(path, NULL, offset, height-offset, offset, height-radius-offset, radius);
    CGPathAddLineToPoint(path, NULL, offset, offset+radius);
}
于 2013-10-28T02:07:03.653 に答える