[iOS] Extension 활용 방법
Extension의 활용
- 다양한 Extension 파일
UIView+Extensions
//
// UIView+Extensions.swift
// sopkathon_iOS
//
// Created by 안재은 on 02/11/2019.
// Copyright © 2019 SwiftHelloWorld. All rights reserved.
//
import Foundation
import UIKit
// UIView Extension
extension UIView {
// Set Rounded View
func makeRounded(cornerRadius : CGFloat?){
// UIView 의 모서리가 둥근 정도를 설정
if let cornerRadius_ = cornerRadius {
self.layer.cornerRadius = cornerRadius_
} else {
// cornerRadius 가 nil 일 경우의 default
self.layer.cornerRadius = self.layer.frame.height / 2
}
self.layer.masksToBounds = true
}
// Set UIView's Shadow
func dropShadow(color: UIColor, offSet: CGSize, opacity: Float, radius: CGFloat) {
// 그림자 색상 설정
layer.shadowColor = color.cgColor
// 그림자 크기 설정
layer.shadowOffset = offSet
// 그림자 투명도 설정
layer.shadowOpacity = opacity
// 그림자의 blur 설정
layer.shadowRadius = radius
// 구글링 해보세요!
layer.masksToBounds = false
}
// …
}
UIViewController+Extensions
//
// UIViewController+Extensions.swift
// sopkathon_iOS
//
// Created by 안재은 on 02/11/2019.
// Copyright © 2019 SwiftHelloWorld. All rights reserved.
//
import Foundation
import UIKit
extension UIViewController {
// UIAlertController without handler
func simpleAlert(title: String, message: String) {
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
let okAction = UIAlertAction(title: "확인",style: .default)
alert.addAction(okAction)
present(alert, animated: true)
}
// UIAlertController with Handler
func simpleAlertwithHandler(title: String, message: String, okHandler : ((UIAlertAction) -> Void)?, cancleHandler : ((UIAlertAction) -> Void)?){
let alert = UIAlertController(title: title, message: message, preferredStyle: .alert)
let okAction = UIAlertAction(title: "확인",style: .default, handler: okHandler)
let cancelAction = UIAlertAction(title: "취소",style: .cancel, handler: cancleHandler)
alert.addAction(okAction)
alert.addAction(cancelAction)
present(alert, animated: true, completion: nil)
}
// Set Custom Back Button
func setBackBtn(color : UIColor){
// 백버튼 이미지 파일 이름에 맞게 변경해주세요.
let backBTN = UIBarButtonItem(image: UIImage(named: "backBtn"),
style: .plain,
target: self,
action: #selector(self.pop))
navigationItem.leftBarButtonItem = backBTN
navigationItem.leftBarButtonItem?.tintColor = color
navigationController?.interactivePopGestureRecognizer?.delegate = self as? UIGestureRecognizerDelegate
}
// …
}
#iOS