누군가에게 알려주기 보다는 나 스스로 정리 하며 언젠가 다시 사용할 때를 대비하는 글을 작성할것이다.
참고자료 : SunBase
이번에 내가 만들 프로젝트마다 반영할 가장 기본이 되는 기능들이지만 iOS가 공식적으로 지원하지는 않거나 또는 만들때마다 귀찮았던 기능들을 한 번에 묶어서 만들어봤다.
아마 본 기능들도 다수 있을거고 똑같다고 느끼는 기능들도 있을것이다.
단순히 나 혼자 사용하기 위한 패키지가 될 것이기에 누군가가 해당 패키지르 쓴다면 언제든지 사용에 대해서 주의하고 조심해서 사용하기를 바란다.
보고 필요하다면 위의 주소를 SPM 에서 사용하면 된다.
SunBase
는 직독을 하면 태양의 기본이라고 해설 할 수 있겠지만 이건 이름 짓고 생각한 네이밍이고 내가 외국에서 사용하던 이름인 Sean
이 원래는 Sun
이 었으나 외국인들은 내 이름이 sun이라 하면 ????? 가 표정에 나타나거나 Sean으로 부르길래 내 Sean으로 정착했다.
그래서 직독시 그나마 뜻이 장황하기도 하고 내가 만들었다는 티를 내기 위해서 이름을 저렇게 지었다.
내가 주로 앱을 제작할 때 많이 사용하는 기본 기능들 위주로 만들었다.
지금은 이정도 만들어뒀지만 앞으로 코드를 짜면서 더 필요한게 있다면 계속해서 추가를 할 생각이다.
약어로 SB
를 사용하며 토스트 메세지를 제외하고 아래 목록의 이름 뒤 괄호 안에 붙은 이름을 입력하면 해당글에서 소개하고 있는 함수들을 사용할 수 있다.
메세지 기능
showToast(message: String,
type: simpleType = .down,
constatns: CGFloat = 100,
duration: CGFloat = 2.0,
delay:CGFloat = 0.4,
isRepeat: Bool = false)
self.view.showToast(message: "GOOD SUNBASE!!")
파라미터 정보
동작화면
Indicator 기능
showIndicator(_ time: Double = 5,
isTimer: Bool = false,
completion: ((Bool) -> ())? = nil)
stopIndicator(completion: ((Bool)->())? = nil)
파라미터 정보
showIndicator()
1. time: timer를 지정하여 이 시간이 지나면 stop 호출 = Optional
2. isTimer: Stop호출하는 타이머 동작여부 선택 = Optional
3. completion: Stop동작시 나오는 Completion 값을 받아옴 = Optional
stopIndicator()
1. completion: Indicator 동작이 멈추게 될경우 제대로 동작이 이루어졌는지 확인 할 수 있는 값을 줌 = Optional
동작 화면
사용방법
let buttonArray: [UIButton] = [firstBtn, secondBtn, thirdBtn]
라디오 버튼 기능
makeRadio(_ array: [UIButton],
isText: Bool = false,
isRight: Bool = false,
emptyImage: UIImage? = UIImage(systemName: "circle"),
fillImage: UIImage? = UIImage(systemName: "circle.fill"))
파라미터 정보
라디오 버튼 입력 확인 방법
checkRadioArray(completion: (_ radio: [Bool]) -> ())
외부에서 해당 함수 호출시 completion을 통해 현재 radio button으로 선택된 값이 Bool 값으로 나타난다.
단, 라디오 버튼으로 사용하는 버튼에 확인하는 이 함수를 같이 동작을 시키게 될 경우 해당 함수는 버튼이 동작하기 전의 값이 출력이 되므로 라디오 버튼으로 사용하는 버튼들에게는 따로 동작을 부여하지 않는것이 좋다.
동작 화면
라디오 버튼과 90% 가까이 동일한 방법
단, 체크박스의 경우에는 다중 선택이 가능하다는 차이만 존재
그래서 전체 선택과 해제가 가능한 함수가 있음
allCheckBox()
동작 화면
Two Type Alert
show2Type(_ VC: UIViewController,
title: String,
message: String,
okTitle: String = "확인",
okStyle: UIAlertAction.Style = .default,
ok: ((UIAlertAction)->())?,
cancelTitle: String = "취소",
cancelStyle: UIAlertAction.Style = .cancel,
cancel: ((UIAlertAction)->())? )
파라미터 정보
2. Three Type Alert
show3Type(_ VC: UIViewController,
title: String,
message: String,
okTitle: String = "확인",
okStyle: UIAlertAction.Style = .default,
ok: ((UIAlertAction)->())?,
cancelTitle: String = "취소",
cancelStyle: UIAlertAction.Style = .cancel,
cancel: ((UIAlertAction)->())?,
destructiveTitle: String = "삭제",
destructiveStyle: UIAlertAction.Style = .destructive,
destructive: ((UIAlertAction)->())? )
파라미터 정보
동작 화면
싱글턴으로 만들어져 있다는 점은 일단은 알아두는게 좋다.
사용방법은 아래의 2가지 방식이 존재한다.
let sunTimer = SunTimer.shared
suntTimer.startTimer(3)
or
SB.timer.startTimer(3) { isStop in
print(isStop)
}
// true
startTimer(_ interval: Double,
repeats: Bool,
completion: @escaping (_ isStop: Bool) -> ())
stopTimer(completion: (Bool) -> ())
파라미터 정보
sunTimer.stopTimer { isStop in
print(isStop)
}
// true
당연 틀린 부분 지적은 감사하나 비난은 정중하게 사양하겠다.