アプリケーションでは、UIViewからイメージを取り出す必要があります。そのビューのフレームはW 1800とH 1200です。performSelectorInBackgroundとUI操作の実行
このアクティビティは、このアクティビティが終了しない限り、時間がかかりすぎて画面が停止します。
このアクティビティをバックグラウンドで実行する必要があるため、ユーザーは他のことを続けることができます。
これを達成する最良の方法は何ですか?私は試しました
- (void)performSelectorInBackground:(SEL)aSelector withObject:(id)arg
しかし、これでUI操作が許可されないため、アプリケーションがクラッシュします。この活動は、仕上げを取得しない限り、私は
- (void)performSelectorOnMainThread:(SEL)aSelector withObject:(id)arg waitUntilDone:(BOOL)wait
が画面stucksで行く場合。
私はこれで私を助けてください背景
-(void) PrepareImageData
{
UIImage* frontViewImage = [self PreparefrontImage:[self GetSavedFrontImage]];
[self SaveImageinDocumentWithName:frontViewImage FileName:@"frontview.png"];
UIImage* rearViewImage = [self PrepareBackImage:[self GetSavedBackImage]];;
[self SaveImageinDocumentWithName:rearViewImage FileName:@"backview.png"];
}
-(UIImage*) GetSavedBackImage
{
UIImage* background;
UIImage* messageTextview;
UIImage* toTextView;
UIImage* fromTextView;
background = [self GetImageFromView:self toRect:self.frame];
CGRect rect = CGRectMake(0, 0, 1800, 1200);
UIGraphicsBeginImageContext(rect.size);
CGPoint backgroundPoint = CGPointMake(0,0);
[background drawAtPoint:backgroundPoint];
UIImage* backImage = UIGraphicsGetImageFromCurrentImageContex();
UIGraphicsEndImageContext();
return backImage;
}
- (UIImage *) GetImageFromView:(UIView *)aView toRect:(CGRect)aRect
{
CGSize pageSize = aRect.size;
UIGraphicsBeginImageContext(pageSize);
[aView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
で次のアクティビティを実行する必要があります。
ありがとうございました。
あなたが達成しようとしているものに関連するより多くのコードを入力する必要があります –
コードが追加されました。 –
「UIViewから画像を取り出す」?何?あなたの問題を示すためのコードはありますか? –