0

このコードは目的に使用します

 if(editedImage !=nil)
{
    [selectionView1 removeFromSuperview];

    UIImageView *selectionView1 = [[UIImageView alloc] initWithImage:editedImage.image];

    [_buttonScroll addSubview:selectionView1];
}

else{
[_buttonScroll addSubview:selectionView1];
}

私はそれが最初に実行されたときに編集された画像がnilであるため、それ以外の場合に編集された画像が以下のような画像を取得するようにしました

    -(void)imagePickerController:(UIImagePickerController *)picker
      didFinishPickingImage : (UIImage *)image
                 editingInfo:(NSDictionary *)editingInfo
{

      NSLog(@"%@",image);
  editedImage   = [[UIImageView alloc] initWithImage: image];
    NSLog(@"%@",editedImage);
    // editedImage is UIImageView

    [picker dismissModalViewControllerAnimated:YES];
}

それでいっぱいになり、最初のコードが2回目に実行されたとき、editedImageはnullではなく、if(editedImage ! = nil)条件の内側に入ります。そのために、ボタンにあった古い画像を削除し、この新しい画像を追加したいと思います私は編集された画像から得ました

問題は古い画像が削除されていないことです

4

3 に答える 3

1
-(void)imagePickerController:(UIImagePickerController *)picker
      didFinishPickingImage : (UIImage *)image
                 editingInfo:(NSDictionary *)editingInfo
{

    [_buttonScroll setImage:image forState:UIControlStateNormal];

    [picker dismissModalViewControllerAnimated:YES];
}

これを簡単に試してください:)

于 2013-04-12T05:29:20.237 に答える
0

あなたがする必要があるのは、追加する画像を追跡することです。追加される画像にプロパティ変数を保持することもできますが、より良いオプションは、追加される画像のタグを設定することです。最初の if ステートメントを次のように変更すると:

//set a tag value to use (defined at the top of your file outside the @implementation)
#define PREVIOUS_VIEW_TAG 999

if(editedImage !=nil)
{
    UIView* previousImageView = [_buttonScroll viewWithTag:PREVIOUS_VIEW_TAG];
    [previousImageView removeFromSuperview];

    UIImageView *selectionView1 = [[UIImageView alloc] initWithImage:editedImage.image];
    selectionView1.tag = PREVIOUS_VIEW_TAG;

    [_buttonScroll addSubview:selectionView1];
}

else{
    selectionView1.tag = PREVIOUS_VIEW_TAG;
    [_buttonScroll addSubview:selectionView1];
}

これにより、追加するビューを追跡できます。PREVIOUS_VIEW_TAG の値は何でも構いませんが、私は 999 を選びました。

また、[_buttonScroll setBackgroundImage:selectionView1] を使用し、[_buttonScroll setBackgroundImage:nil]; で削除する @Bhargavi の提案を念頭に置いてください。(または、新しい backgroundImage を設定して上書きするだけ) も機能します。ただし、質問に具体的に答えるには、タグを使用してビューを追跡することを検討してください。

于 2013-04-12T05:44:46.043 に答える