2012-11-27 173 views
0

我有一個空白屏幕,我單擊相機按鈕並拍照,然後將該照片作爲UIVIew出現在我的空白屏幕上,並且我將相機中的多個圖像添加到空白屏幕。問題是有時我可以在空白屏幕上添加多個圖像,但有時當我捕獲圖像時,並且空白屏幕上的所有圖像都消失並只顯示當前圖像。在iPhone中捕捉圖像

enter image description here

- (IBAction)openCameraOnAddButton:(id)sender { 
//NSLog(@"openCameraOnAddButton"); 
[AddImagesToCanvasView setHidden:YES]; 
UIImagePickerController *picker = [[UIImagePickerController alloc] init]; 
picker.delegate = self; 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
[self presentModalViewController:picker animated:YES]; 

}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
[picker dismissModalViewControllerAnimated:YES]; 
UIImage *image = [[info objectForKey:@"UIImagePickerControllerOriginalImage"] retain]; 


UIView *holderView; 
if(image.size.width > image.size.height || image.size.width == image.size.height) 
{ 
    holderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 180, 160)]; 
} 
else{ 
    holderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, 240)]; 
} 
UIImageView *imageview = [[UIImageView alloc] initWithFrame:[holderView frame]]; 
[imageview setImage:image]; 
NSLog(@"Tag By Default %d",(arc4random()%100)+10); 
[holderView setTag:(int)objectDelegate.tagForHolderView]; 
[imageview setTag:((int)objectDelegate.tagForHolderView)+1]; 
[holderView addSubview:imageview]; 


UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(scale:)]; 
[pinchRecognizer setDelegate:self]; 
[holderView addGestureRecognizer:pinchRecognizer]; 

UIRotationGestureRecognizer *rotationRecognizer = [[UIRotationGestureRecognizer alloc] initWithTarget:self action:@selector(rotate:)]; 
[rotationRecognizer setDelegate:self]; 
[holderView addGestureRecognizer:rotationRecognizer]; 

UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(move:)]; 
[panRecognizer setMinimumNumberOfTouches:1]; 
[panRecognizer setMaximumNumberOfTouches:1]; 
[panRecognizer setDelegate:self]; 
[holderView addGestureRecognizer:panRecognizer]; 

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped:)]; 
[tapRecognizer setNumberOfTapsRequired:1]; 
[tapRecognizer setDelegate:self]; 
[holderView addGestureRecognizer:tapRecognizer]; 


UILongPressGestureRecognizer *gestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(gestureHandler:)]; 
[holderView addGestureRecognizer:gestureRecognizer]; 

[holderView.layer setBorderColor: [[UIColor whiteColor] CGColor]]; 
[holderView.layer setBorderWidth: 3.0]; 
[self.view addSubview:holderView]; 
objectDelegate.tagForHolderView+=2; 

} 
+0

圖像捕獲的粘貼代碼.. – Rajneesh071

+1

因爲你正在分配內存給holderView所有的時候,當你的didFinishPickingMediaWithInfo調用...所以只需在你的holderView中配置你的holderView .. – Rajneesh071

+0

謝謝。我已從didFinishPcikingMediInfo中移除holderview的分配給頭文件。但其行爲相同 – Zohaib

回答

0

不知道,但因爲你正在做的所有的操作UIImagePickerCotroller的委託方法有時可能無法正常工作。

我同時存儲在文件目錄&圖像來解決這個我已經創造了新的線程在didFinishPickingMediaWithInfo方法&該方法移動整個代碼面臨着同樣的問題。然後,它對我來說工作正常。嘗試做到這一點。

+0

好吧讓我試試這個比我會讓你知道它是否有效 – Zohaib

+0

沒有爲我工作 – Zohaib