2016-04-28 148 views
1

其實我想轉換method.I迅速在項目中使用bridge_header TOCropViewController委託&呼叫TOCropViewController類bridge_header file.Then我把委託方法在viewcontroller.swift.As到目前爲止,我這樣做如何在Swift中轉換Objective-C TOCropViewController委託方法?

let cropViewController = TOCropViewController(image:image) 
cropViewController.delegate = self 
self.presentViewController(cropViewController, animated: true,  completion: nil) 
self.imageView.image = image 

但如何可以在swift中將下面的目標c TOCropViewController委託方法轉換。

#pragma mark - Cropper Delegate - 


- (void)cropViewController:(TOCropViewController *)cropViewController didCropToImage:(UIImage *)image withRect:(CGRect)cropRect angle: (NSInteger)angle 
{ 
self.imageView.image = image; 
[self layoutImageView]; 

self.navigationItem.rightBarButtonItem.enabled = YES; 

CGRect viewFrame = [self.view convertRect:self.imageView.frame  toView:self.navigationController.view]; 
     self.imageView.hidden = YES; 
     [cropViewController dismissAnimatedFromParentViewController:self withCroppedImage:image toFrame:viewFrame completion:^{ 
    self.imageView.hidden = NO; 
}]; 
    } 

#pragma mark - Image Picker Delegate - 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo 
{ 
[self dismissViewControllerAnimated:YES completion:^{ 
    self.image = image; 
    TOCropViewController *cropController = [[TOCropViewController  alloc] initWithImage:image]; 
     cropController.delegate = self; 

     // Uncomment this to test out locked aspect ratio sizes 
     // cropController.defaultAspectRatio =  TOCropViewControllerAspectRatioSquare; 
     // cropController.aspectRatioLocked = YES; 

     // Uncomment this to place the toolbar at the top of the view controller 
     // cropController.toolbarPosition = TOCropViewControllerToolbarPositionTop; 

     [self presentViewController:cropController animated:YES completion:nil]; 
    }]; 
    } 

     - (void)imagePickerControllerDidCancel:(UIImagePickerController  *)picker 
    { 
    [self dismissViewControllerAnimated:YES completion:nil]; 
    } 

    #pragma mark - Gesture Recognizer - 
    - (void)didTapImageView 
    { 
    TOCropViewController *cropController = [[TOCropViewController alloc] initWithImage:self.image]; 
    cropController.delegate = self; 

    // Uncomment this to place the toolbar at the top of the view con troller 
     // cropController.toolbarPosition =  TOCropViewControllerToolbarPositionTop; 

     [self presentViewController:cropController animated:YES completion:nil]; 
     } 

我很多搜索在谷歌,但不能發現this..Some鏈接我搜索https://github.com/TimOliver/TOCropViewController/issues/25 & https://github.com/TimOliver/TOCropViewController/issues/71 ...

回答

3
func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!) 
    { 
     self.dismissViewControllerAnimated(true, completion: {() -> Void in 
      if image != nil 
      { 
       let cropController:TOCropViewController = TOCropViewController(image: image) 
       cropController.delegate=self 
       self.presentViewController(cropController, animated: true, completion: nil) 
      } 
     }) 
    } 

    func imagePickerControllerDidCancel(picker: UIImagePickerController) 
    { 
     picker.dismissViewControllerAnimated(true, completion: {() -> Void in }) 
    } 

    // -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 
    //  Cropper Delegate 
    // -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- 

    func cropViewController(cropViewController: TOCropViewController!, didCropToImage image: UIImage!, withRect cropRect: CGRect, angle: Int) 
    { 
     cropViewController.dismissViewControllerAnimated(true) {() -> Void in 
      self.imageView.image = image 
     } 
    } 

    func cropViewController(cropViewController: TOCropViewController!, didFinishCancelled cancelled: Bool) 
    { 
     cropViewController.dismissViewControllerAnimated(true) {() -> Void in } 
    } 
+0

感謝Jayesh ....我會用你迅速的方法。 ....並完全轉換我的代碼在迅速。 –

+0

我有錯誤嘗試分配委託,只是爲了評論,仍然需要在類聲明中添加TOCropViewControllerDelegate! –