实际上我想转换TOCropViewController委托方法。我在swift项目中使用了bridge_header并在bridge_header文件中调用了TOCropViewController类。然后我将委托方法放入了viewcontroller.swift中。
let cropViewController = TOCropViewController(image:image)
cropViewController.delegate = self
self.presentViewController(cropViewController, animated: true, completion: nil)
self.imageView.image = image
但是如何快速将下面的 objective-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];
}
我在Google上搜索了很多,但找不到此。。某些链接我在搜索
https://github.com/TimOliver/TOCropViewController/issues/25
&https://github.com/TimOliver/TOCropViewController/issues/71 ... 最佳答案
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 }
}
关于ios - 如何在Swift中转换Objective-C TOCropViewController委托(delegate)方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36905156/