Tocropviewcontroller: рд╕реНрд╡рд┐рдлреНрдЯ 3 рд╕рдкреЛрд░реНрдЯ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 4 рдЕрдХреНрддреВре░ 2016  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: TimOliver/TOCropViewController

рдореИрдВ рд╕реНрд╡рд┐рдлреНрдЯ 3 рдХреЗ рд╕рд╛рде рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

enhancement question

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ 3 рдпрд╛ рдЕрдиреНрдп рд╕реНрд╡рд┐рдлреНрдЯ рд╡рд░реНрдЬрди рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ (рдпрд╛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ) рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдФрд░ рд╕реНрд╡рд┐рдлреНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╕рд╛рде рд░рд╣ рд╕рдХрддреА рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ред рддреЛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ CocoaPods рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рд░реАрдбрдореА рд╕реЗ 'рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди' рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

import TOCropViewController

func presentCropViewController() {
    let image: UIImage = ... // Load an image
    let cropViewController = TOCropViewController(image: image)
    cropViewController.delegate = self
    present(cropViewController, animated: true, completion: nil)
}

func cropViewController(_ cropViewController: TOCropViewController!, didCropTo image: UIImage!, with cropRect: CGRect, angle: Int) {
    // 'image' is the newly cropped version of the original image
}

рдпрджрд┐ рдЖрдк рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ 'рдЗрдореНрдкреЛрд░реНрдЯрд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдЗрди рд╕реНрд╡рд┐рдлреНрдЯ' рд╕реЗрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html рдФрд░ рдлрд┐рд░ рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдКрдкрд░ред

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдПрдХ рдЙрджреНрджреЗрд╢реНрдп-рд╕реА рдмреНрд░рд┐рдЬрд┐рдВрдЧ рд╣реЗрдбрд░ рдЬреЛрдбрд╝рдиреЗ рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП! :)

рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рджреЗрдЦреВрдВрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдореИрдВ рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ 'рд╕реНрд╡рд┐рдлреНрдЯреА' рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдбрд┐рдЬрд╝рд╛рдЗрди рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред

рдореИрдВ рдХреЛрдХреЛрдкреЛрдбреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ 3 рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ TOCropViewController рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдмрд┐рдирд╛ рдХрд┐рд╕реА рддреНрд░реБрдЯрд┐ рдХреЗ рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред

рд╣рдо рддреЗрдЬ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реИрдВ рдХреГрдкрдпрд╛ # @akovalov :) :) :)

@osmanyildirim рдПрдХ рдореБрдХреНрдд рдУрдкрди рд╕реЛрд░реНрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреА рдХреБрдЫ рднреА 'рдЙрдореНрдореАрдж' рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред ;)

рдпрджрд┐ рдЖрдкрдХреЛ рдореВрд▓ рд╕реНрд╡рд┐рдлреНрдЯ 3 рд╕рдорд░реНрдерди рдХреА рд╕рдЦреНрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВред :рдбреА

рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ 3 рдпрд╛ рдЕрдиреНрдп рд╕реНрд╡рд┐рдлреНрдЯ рд╡рд░реНрдЬрди рдХреЛрдб рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд░рдиреЗ (рдпрд╛ рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдиреЗ) рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдФрд░ рд╕реНрд╡рд┐рдлреНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдХ рд╕рд╛рде рд░рд╣ рд╕рдХрддреА рд╣реИрдВред рдкрд░рд┐рдпреЛрдЬрдирд╛ред рддреЛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ CocoaPods рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рд╕реНрд╡рд┐рдлреНрдЯ рдореЗрдВ рд░реАрдбрдореА рд╕реЗ 'рдореВрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди' рдЙрджрд╛рд╣рд░рдг рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:

import TOCropViewController

func presentCropViewController() {
    let image: UIImage = ... // Load an image
    let cropViewController = TOCropViewController(image: image)
    cropViewController.delegate = self
    present(cropViewController, animated: true, completion: nil)
}

func cropViewController(_ cropViewController: TOCropViewController!, didCropTo image: UIImage!, with cropRect: CGRect, angle: Int) {
    // 'image' is the newly cropped version of the original image
}

рдпрджрд┐ рдЖрдк рд╕реНрд╡рд┐рдлреНрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╕реНрд░реЛрдд рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣рд╛рдВ 'рдЗрдореНрдкреЛрд░реНрдЯрд┐рдВрдЧ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдЗрди рд╕реНрд╡рд┐рдлреНрдЯ' рд╕реЗрдХреНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВ https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html рдФрд░ рдлрд┐рд░ рдЙрджрд╛рд╣рд░рдг рдХреА рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдКрдкрд░ред

рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рд╕реНрд╡рд┐рдлреНрдЯ рдЗрдВрдЯрд░рдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдирд╛рдЯрдХ рдерд╛ред NS_SWIFT_NAME рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдзрд┐ рдирд╛рдореЛрдВ рдХрд╛ рдкреВрд░реНрдг рд░рд┐рдлреИрдХреНрдЯрд░ рдХрд░рдиреЗ рд╕реЗ рдХрдо, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЬрд┐рддрдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЙрддрдирд╛ рд╣реА рд╣реИред

рдпрджрд┐ рдЖрдк рд╕реНрд╡рд┐рдлреНрдЯ рдЗрдВрдЯрд░рдСрдк рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдПрдХ рдкреАрдЖрд░ рджрд░реНрдЬ рдХрд░реЗрдВред :)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

Srosman picture Srosman  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

agusguerra10 picture agusguerra10  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ntnmrndn picture ntnmrndn  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ClaesClaes picture ClaesClaes  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

muranobu picture muranobu  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ