2012-11-27 130 views
4

我在滾動視圖中添加了圖像。長按我給所有圖像擺動動畫。 當我們卸載任何類似的應用程序時,我想在iphone中顯示每個圖像右上角的刪除按鈕。在擺動圖像上顯示刪除按鈕並刪除該特定圖像

- (void)startWobble { 
for (UIView *imgView in viewsInScrollView) { 
    UIButton *deleteImgButton = [[UIButton alloc] initWithFrame:CGRectMake(55,-7,12,12)];   
    [deleteImgButton setImage:[UIImage imageNamed:@"close_icon.png"] forState:UIControlStateNormal]; 
    [deleteImgButton addTarget:self action:@selector(deleteImage:) forControlEvents:UIControlEventTouchUpInside]; 
    [imgView addSubview:deleteImgButton]; 


    imgView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-5));   
    [UIView animateWithDuration:0.20 
          delay:0.0 
         options:(UIViewAnimationOptionAllowUserInteraction | UIViewAnimationOptionRepeat | UIViewAnimationOptionAutoreverse) 
        animations:^ { 
         imgView.transform = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(5)); 
        } 
        completion:NULL 
    ]; 
} 
} 
-(void)deleteImage : (id)sender { 
    NSLog(@"Delete Image"); 
} 

這裏的選擇器不叫....我怎麼解決這個..?

+0

你可以顯示這個標題檔案?你在頭文件中聲明瞭deleteImage方法嗎? – giorashc

+0

是的,我已經宣佈它... – Pallavi

+0

當我添加動畫到圖像視圖和添加按鈕圖像視圖可能是它禁用用戶交互 http://stackoverflow.com/questions/12354919/add-selector-to-button-on -uiscrollview-views-added-dynamically – Pallavi

回答

1

您可以在最初的所有自定義視圖中添加帶有標籤值的刪除按鈕,並將其隱藏起來。現在在- (void)startWobble方法,你可以讓他們取消隱藏只是使用他們的標籤。

我以這種方式完成了我的一個應用程序。希望這會幫助你。

+0

意見不定製,我動態地添加它,用戶可以動態添加或刪除圖像。 – Pallavi

+0

是的,你寫的代碼添加刪除按鈕 - (void)startWobble。您可以在您動態創建這些視圖的位置使用此代碼。多數民衆贊成在我的意思是.. – Mihir

+0

是的,我試過,但它不是調用該選擇器,我瘦k它是因爲'[imgView addSubview:deleteImgButton];' 我補充說,在圖像視圖和動畫圖像視圖。在製作動畫時,它不會調用任何選擇器。 我嘗試添加滾動視圖,當時它工作正常:) – Pallavi

0

找到從蘋果文檔的這句話,想起你的問題:

在動畫,用戶交互暫時禁用 進行動畫的意見。 (在此之前的iOS 5,用戶交互 整個應用程序禁用。)

1

簡單.....

#define RADIANS(degrees) ((degrees * M_PI)/180.0) 

CGAffineTransform leftWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(-5.0)); 
CGAffineTransform rightWobble = CGAffineTransformRotate(CGAffineTransformIdentity, RADIANS(5.0)); 

itemView.transform = leftWobble; // starting point 

[UIView beginAnimations:@"wobble" context:itemView]; 
[UIView setAnimationRepeatAutoreverses:YES]; // important 
[UIView setAnimationRepeatCount:10]; 
[UIView setAnimationDuration:0.25]; 
[UIView setAnimationDelegate:self]; 
[UIView setAnimationDidStopSelector:@selector(wobbleEnded:finished:context:)]; 

itemView.transform = rightWobble; // end here & auto-reverse 

[UIView commitAnimations]; 

... 

- (void) wobbleEnded:(NSString *)animationID finished:(NSNumber *)finished context:(void *)context 
{ 
    if ([finished boolValue]) { 
     UIView* item = (UIView *)context; 
     item.transform = CGAffineTransformIdentity; 
    } 
} 

得到它從thisQuestion