일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- retrofit2
- ViewModel
- javascript
- RecyclerView
- SWIFT
- web
- IOS
- 개발
- ayncAfter
- dispatchQueue
- UIPickerView
- progressbar
- viewpager2
- InAppPurchase
- RxJava
- DispatchTouchEvent
- CalendarView
- Kotlin
- Alamofire
- CSS
- 스터디
- Android
- Dropdown
- MemoList
- imagepicker
- 실행지연
- HTML
- aab
- MotionEvent
- SplashFragment
- Today
- Total
목록개발 공부/[iOS 개발] (8)
멜팅비의 개발 공부
오늘은 iOS에서 자주 사용하는 라이브러리로 DropDown 라이브러리를 사용하여 DropDown View를 구현하는 방법을 정리하려고 한다. 왼쪽 같은 DropDown View를 자주 보게 되고 구현해야 하는 상황이 자주 오게 된다. 안드로이드의 경우 Spinner(스피너)라는 위젯을 통해 쉽게 구현이 가능하다. iOS의 경우 PickerView라는 기본 UI를 제공하지만 왼쪽처럼 구현하기 어렵다. 그래서 DropDown이라는 라이브러리를 자주 사용하게 된다. 그래서 DropDown 라이브러리를 어떤 식으로 사용하고, 커스텀하는지 알아보려고 한다. DropDown 라이브러리는 https://github.com/AssistoLab/DropDown Github 주소를 통해 더 확인 할 수 있다. 먼저 코코..
오늘의 예제 버튼 안에 아이콘 이미지와 텍스트가 세로 방향으로 정렬하는 형태로 버튼을 구현하는 방법이다. 예제의 경우, 빨간색 View안에 버튼을 넣어서 모양을 구현했다. 먼저 View 안에 UIButton을 넣고, 위치를 잡은 뒤 필요한 디자인에 따라 아이콘과 텍스트를 설정하면 기본 버튼의 경우 아이콘과 텍스트가 나란히 붙은 모양으로 구현이 된다. UIButton에 extension을 추가하여 쉽게 구현할 수 있다. extension UIButton { func alignTextBelow(spacing: CGFloat = 4.0) { guard let image = self.imageView?.image else { return } guard let titleLabel = self.titleLabel ..
프로필 사진을 설정하는 등 사진첩에서 사진을 가져오는 기능을 구현해야 할 때 UIImagePickerController를 활용하면 된다. let imagePicker = UIImagePickerController() override func viewDidLoad() { super.viewDidLoad() imagePicker.delegate = self btnPicker.addTarget(self, action: #selector(btnPickerDidTap(:)), for: .touchUpInside) } @objc func btnPickerDidTap(_ sender: UIButton) { self.imagePicker.sourceType = .photoLibrary self.present(image..
Alamofire를 통해서 네트워크 통신을 할 때 다양한 Response가 내려오는데 Array형식으로 내려오는 데이터를 처리하는 방법을 정리하려고 한다. { "result": [ { "name": "Kim:, "age": 10 }, { "name": "Lee":, "age": 10 } } 개발을 하다 보면 위와 같은 형식의 Json ResponseBody가 내려오는 경우가 있다. 이럴 때 name과 age를 갖는 Person 구조체를 만들어서 Array으로 변환하여 데이터를 받아 처리하면 좋다. struct Response: Codable { let result: [T] } struct Person: Codable { let name: String let age: Int } 제너릭을 이용해서 어떤 타입..
iOS에서 UI작업을 하다 보면 상단 모서리에만 radius가 들어간다거나 오른쪽만 radius가 들어가는 등 특정 모서리만 라운드를 주고 싶을 때가 있다. 그럴 때 사용하기 편한 코드를 기록해두려고 한다. extension UIView { func roundCorners(corners:UIRectCorner, radius: CGFloat) { let path = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius)) let mask = CAShapeLayer() mask.path = path.cgPath self.layer.mask = mask }..
업무가 많아지면서 그동안 스터디 한 내용을 정리하거나, 개발하면서 도움이 된 코드 정리가 소홀해졌다.. 이번에 iOS 프로젝트를 서브로 맡으면서 UI부터 작업을 진행하고 있는데 UI를 하면서 도움이 된 코드나 자주 검색했던 내용들을 하나씩 정리하려고 한다. iOS 개발을 하면서 아이콘을 정말 많이 사용하게 되는데 코드 내에서 이 아이콘의 색상 변경이 필요할 때가 굉장히 많다. Tint Color를 통해서 변경할 수 있지만 같은 이미지인데 색상만 변경해서 사용할 때 유용한 코드이다. extension UIImage { func imageWithColor(color: UIColor) -> UIImage { UIGraphicsBeginImageContextWithOptions(self.size, false, ..
실행 지연 - DispatchQueue.main.asyncAfter(deadline: ) 특정 코드를 시간차를 두고 실행이 필요한 경우. 즉, 실행지연이 필요할 때 DispatchQueue.main.ayncAfter()를 사용하면 된다. DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1) { // 1초 후 실행될 부분 }
현재 개발 중인 앱이 슬롯머신처럼 버튼을 눌렀을 때 랜덤 하게 pick 해주는 기능이 포함되어 있는데 iOS에서 어떻게 구현해야 할지 검색하다가 DateTimePicker처럼 UIPickerView를 이용해서 자동으로 스크롤링되도록 구현하기로 했다. 그래서 UIPickerView를 Custom 하기 위해 필요한 부분들을 정리해봤다. UIPickerView 사용자 스크롤 막기 - 버튼을 눌렀을 때만 동작하게 만들기 위해서 사용자가 직접 터치하는 부분을 막을 때 사용 pickerView.isUserInteractionEnabled = false UIPickerView 아이템 높이 변경(row height) - 설정하고자 하는 높이를 return 하면 된다. func pickerView(_ pickerView..