Tocropviewcontroller: ์•ฑ์ด ๋‹ซํžˆ๊ฑฐ๋‚˜ AnimatedFrom์„ ํ•ด์ œํ•œ ํ›„ ๋นˆ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ์ •๋ณด ๋ฐ ๋‹จ์„œ ์—†์Œ - Swift

์— ๋งŒ๋“  2019๋…„ 09์›” 27์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: TimOliver/TOCropViewController

๋ฒ„๊ทธ ์„ค๋ช…

์ด๊ฒƒ์€ ์ƒˆ๋กœ์šด Xcode ๋ฐ iOS ์—…๋ฐ์ดํŠธ์—์„œ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค(์ •ํ™•ํ•œ ๋ฌธ์ œ์ธ์ง€๋Š” ์•Œ ์ˆ˜ ์—†์Œ). ๊ทธ๊ฒƒ์€ ์ž˜ ์ž‘๋™ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ dismiss ๋˜๋Š” dismissAnimatedFrom ํ˜ธ์ถœํ•˜๋ฉด ์ „์ฒด ํ™”๋ฉด์ด ๊ฒ€์€์ƒ‰์œผ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ์—†๊ฑฐ๋‚˜ ์•„๋ฌด๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค.

์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด
๋™์ž‘์„ ์žฌํ˜„ํ•˜๋Š” ๋‹จ๊ณ„:

  • ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  CroppedViewController ๊ตฌํ˜„ํ–ˆ๋Š”๋ฐ ๋™์ผํ•œ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ๊นŒ์ง€๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ž˜ ๋ฉ๋‹ˆ๋‹ค.
public func updateImageViewWithImage(_ image: UIImage, fromCropViewController cropViewController: CropViewController) {
        imageView.image = image
        layoutImageView()

        self.navigationItem.rightBarButtonItem?.isEnabled = true

        if cropViewController.croppingStyle != .circular {
            imageView.isHidden = true

            cropViewController.dismissAnimatedFrom(self, withCroppedImage: image,
                                                   toView: imageView,
                                                   toFrame: CGRect.zero,
                                                   setup: { self.layoutImageView() },
                                                   completion: {
                                                    self.imageView.isHidden = false })
        }
        else {
            self.imageView.isHidden = false
            cropViewController.dismiss(animated: true, completion: nil)
        }
    }

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™
์ž๋ฅธ ์ด๋ฏธ์ง€๊ฐ€ ํ‘œ์‹œ๋˜๊ณ  CroppedViewController ๊ฐ€ ๋‹ซํž™๋‹ˆ๋‹ค.

์Šคํฌ๋ฆฐ์ƒท
์—ฌ๊ธฐ์— ๋ช…ํ™•ํ•œ ์•„์ด๋””์–ด๋ฅผ ์ œ๊ณตํ•˜๋Š” gif๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

GitErrGif

iOS ๊ธฐ๊ธฐ:

  • ๊ธฐ๊ธฐ: ํ…Œ์ŠคํŠธ ๋Œ€์ƒ(iPhone 7+, iPhoneX)
  • OS: ๋ชจ๋‘ iOS 13์ž…๋‹ˆ๋‹ค.
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฒ„์ „ - ์ตœ์‹ 
  • ์–ธ์–ด - ์Šค์œ„ํ”„ํŠธ

์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ

  • dismiss CroppedViewController ๋งŒ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํฌํ•˜๊ณ  ๋ณต์ œํ•˜์—ฌ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค๋Š” ํ•จ๊ป˜ CropViewController.swift ,ํ•˜์ง€์™€ TO
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์ด ๋ฉ‹์ง„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@anuradhss

CropViewController.modalPresentationStyle = .fullScreen

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

@anuradhss

CropViewController.modalPresentationStyle = .fullScreen

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

@lmr-soltanov ๋„ค, ์ €์žฅ์†Œ์—์„œ๋„ ์ž‘๋™ํ•˜๊ณ  ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ํ•ด์š”

@lmr-soltanov & @anuradhss ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค
์ž‘๋™ ์ค‘์ž…๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

muranobu picture muranobu  ยท  4์ฝ”๋ฉ˜ํŠธ

TimOliver picture TimOliver  ยท  12์ฝ”๋ฉ˜ํŠธ

kcankaynak picture kcankaynak  ยท  4์ฝ”๋ฉ˜ํŠธ

felipebonezi picture felipebonezi  ยท  6์ฝ”๋ฉ˜ํŠธ

rnkyr picture rnkyr  ยท  4์ฝ”๋ฉ˜ํŠธ