일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- IOS
- Python3
- uikit
- 자바스크립트
- nodeJS
- 프로그래머스
- JS
- 교환학생토플
- 노드JS
- 리프2기
- IOS프로그래밍
- swift
- 파이썬웹크롤링
- 인프런파이썬
- 인프런강의
- 스위프트
- 토플
- 우리를위한프로그래밍
- 카카오톡채팅봇
- 유학토플
- 인프런파이썬강의
- 웹크롤링
- 파이썬중급강의
- 인프런
- rxswift
- 파이썬
- SwiftUI
- 파이썬중급
- 토플공부수기
- 인프런오리지널
- Today
- Total
목록uikit (10)
먹고 기도하고 코딩하라

노치 있는 status bar나 home indicator 부분까지 색상이 깔린 디자인을 받을 때가 종종 있다. 폰마다 status bar, home indicator 영역이 조금 다르다. 예를 들어, 홈 버튼이 있는 아이폰 SE 2, 3세대 등의 폰은 아예 home indicator 영역이 잡히지 않는다. 무조건 화면 아래에 constraint를 깔고 constant 34 주는 게 능사가 아닐 수 있다는 이야기다. 우선 status bar 배경색을 주는 방법부터 살펴보자. 2가지 방법이 있다. (1) statusBarManager 사용 첫 번째는 windowScene의 statusBarManager를 사용하는 것이다. UIApplication의 windows 중 첫 번째 window의 windowSce..

한 뷰에서 동적으로 폰의 상태 바 색상을 변경해야 할 때가 있는데, 정적으로 설정하는 방법만 있고 동적으로 설정하는 건 잘 없어서 쓴다. 일단 iOS 13부터는 preferredStatusBarStyle을 오버라이드해서 상태바의 폰트 색상을 변경할 수 있다. class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent } } 이렇게 하면 뷰에 진입했을 때 정적으로 상태 바 ..

1. 버튼이 아닌 일반 UIView에서 Touch up Inside 등의 탭 이벤트를 감지하려면, UITapGestureRecognizer를 뷰에 붙여줘야 한다. 또한, recognizer가 탭 이벤트를 감지했을 때 수행할 셀렉터 함수도 필요하다. 셀렉터 함수부터 만들어주자. 여기서는 tapSomewhere이라는 이름으로 만든다. class ViewController: UIViewController { @IBOutlet weak var dimmedBGView: UIView! var bgViewTapGesture: UITapGestureRecognizer? override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after l..

기본적으로 뷰에 GradientLayer를 깔려면 다음과 같이 해야 한다. CAGradientLayer를 생성하고, frame은 그라데이션을 깔 뷰와 동일하게 맞춰준다. (origin, width, height를 동일하게) 그라데이션할 컬러를 2가지 이상 .colors에 [CGColor] 형태로 담는다. startPoint와 endPoint를 지정하되, x, y의 최소값은 0.0, 최대값이 1.0임을 알고 그 안에서 조절한다. 여기서는 가로 방향 그라데이션을 만들어볼 것이다. 레이어에 대한 설정이 끝났으므로, 뷰의 layer.insertSublayer로 레이어를 삽입한다. 코드는 다음과 같다. 스토리보드로 gradientView를 만들었고, constraint는 다음과 같다. center width : ..

요즘 iOS 앱들은 최저 배포 버전이 낮아봐야 13, 14 정도다. 당연히 SceneDelegate가 있는 프로젝트들이고, 토이 프로젝트 만들 때도 13 미만을 고려하는 경우는 거의 없다. 그래서 AppDelegate만 있는 앱에서 SceneDelegate를 새로 도입해야 할 때 뭘 고려해야 하는지, 같은 생각 자체를 해본 적이 없다. 하지만.. 회사 서비스는 iOS 11부터 지원하고 있었고, 지금까지는 AppDelegate만 사용하고 있었다. 올해 1월에 카플레이를 도입하면서 SceneDelegate를 사용할 일이 있어 이 문제를 고민하게 됐다. 애플 공식 문서를 박박 긁어 AppDelegate, SceneDelegate와 함께 끝까지 가보기로 했다. (?) iOS 13부터는 왜 AppDelegate가..

네줄요약 : 테이블뷰는 단일 컬럼만 가능하다는 제약 사실을 기억하고 결정하자. 둘 사이의 가장 큰 차이점은 레이아웃이다. 테이블뷰를 사용해도 될 요구사항에는 굳이 컬렉션뷰를 사용하지 말고 테이블뷰를 쓰는 게 좋다. 이유는, 컬렉션뷰는 보일러플레이트 코드 때문에 코드 양이 늘어나기 때문이다. 일단 TableView와 CollectionView 간 공통점과 차이점을 간단히 정리하면 이 정도 쓸 수 있다. TableView CollectionView 공통점 * 셀을 기반으로 여러 데이터를 표현할 수 있다. (테이블뷰는 UITableViewCell, 컬렉션뷰는 UICollectionViewCell) * UIScrollView의 서브 클래스이다. * dataSource, delegate 구현이 필요하다. (del..

한줄요약 : let calendar = FSCalendar(frame: .zero) calendar.delegate = self FSCalendarDelegateApperance 프로토콜 준수하고 이 코드 추가 extension ViewController: FSCalendarDelegateAppearance { // 토요일 파랑, 일요일 빨강으로 만들기 func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, titleDefaultColorFor date: Date) -> UIColor? { let day = Calendar.current.component(.weekday, from: date) - 1 if Calendar.curre..

스크롤뷰의 Content Layout Guide, Frame Layout Guide 등에 대해서는 설명하지 않고 어떻게 만드는지만 살펴봅니다. 코드, 스토리보드 2가지 방식과 세로/가로 방향 스크롤뷰를 만드는 방법을 모두 다룹니다. 이 글을 참고했으며 좀 더 자세하게 작성했습니다. 0. 스크롤뷰의 이해 스크롤뷰는 실제로 스크롤돼서 보일 뷰들을 담는 Content Layout과 스크린에 보이는 만큼의 Frame Layout을 가집니다. (Content Layout 영역 >= Frame Layout 영역) 이걸 확실히 이해를 해야 Frame Layout에 priority 왜 낮추는지도 이해가 됩니다. 1. 코드 일단 스토리보드를 삭제하고 구현한다고 가정하고 ViewController 소스 코드만 적습니다. ..