2011-10-21 5 views
0

をレンダリングする、iOSの中のUIViewのboundsプロパティを変更:はその後、私のアプリでは、画像

  • 私はビュー(UIViewの* MYVIEW)wihth clipsToBound = YESを持っています。

  • 私はboundsプロパティの起源を変え行うためのボタンがあります。

CGRect newRect = myView.bounds; 
newRect.origin.x += 100; 
myView.bounds = newRect; 
myView.layer.frame = newRect; 
  • その後、私はビューから画像を取得する:
UIGraphicsBeginImageContext(myView.bounds.size); 
[myView.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage_after = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
UIImageWriteToSavedPhotosAlbum(viewImage_after, nil, nil, nil); 

私は期待していない画像を生成します。私はiPhoneの画面に表示されるように画像が欲しい。ここでのコードの

リンク: http://www.mediafire.com/?ufr1q8lbd434wu1

私を助けてください!

+0

私はmyView.layer.frame = newRectとは思わない。必要な場合は、取り外してください。 – jbat100

+0

親愛なる、それを動かすことは問題を解決しない。 –

答えて

1

イメージ自体をコンテキスト内でレンダリングしたくない場合は、常に同じ方法でレンダリングされます(イメージを変更していない場合は、ビューの遠方まで移動します)。あなたはこのようなイメージの親ビューにレンダリングしたい

UIGraphicsBeginImageContext(myView.superview.bounds.size); 
[myView.superview.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *viewImage_after = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 
UIImageWriteToSavedPhotosAlbum(viewImage_after, nil, nil, nil); 

EDIT

をしかし、あなたはスーパーですべてのものをレンダリングしたくない場合があります:)

ご意見何かのように見えるかもしれない

MainView 
    ImageView (myView) 
    UIButton (ok button) 
    UIButton (cancel button) 

ここで、画像のスーパービューをレンダリングすると、ボタンを含むMainViewがレンダリングされます!

あなたはこのようなあなたのhierachyにに別のビューを追加する必要があります。今すぐ

MainView 
    UIView (enpty uiview) 
    ImageView (myView) 
    UIButton (ok button) 
    UIButton (cancel button) 

、あなたのイメージのスーパーをレンダリングするとき、内部の画像を得た唯一だ - ボタンはレンダリングされません。 )

+0

親愛なるdeanWombourne。あなたのソリューションはすごくうまくいき、画像を画面のビュー表示としてレンダリングします。しかし、私はスーパービューではなくmyViewだけをレンダリングしたい。何か方法はありますか? –

+0

ここに私の元の予期しないコードへのリンク:http://www.mediafire.com/?ufr1q8lbd434wu1 –

+0

あなたの階層に別のビューを追加する必要があります - 詳細は私の編集を見てください。 – deanWombourne

関連する問題