- Swift
- 전달인자 레이블
- lineBreakStrategy
- Keychain
- Accessibility
- Apple
- UILabel
- Human Interface Guidelines
- Combine+UIKit
- 스위프트
- LanguageGuide
- Split View
- DiffableDataSource
- IOS
- iTerm
- orthogonalScrollingBehavior
- 야곰아카데미
- 앱개발
- CollectionView
- GOF
- 디자인패턴
- 애플사이다
- TOSS
- lineBreakMode
- github
- HIG
- UIKit
- WWDC
- 애플
- iPad
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- Today
- Total
목록분류 전체보기 (81)
애플사이다의 iOS 개발 일지
나중에 복붙해서 사용하려고UILabel의 attributedString 설정값을 간단히 정리해봤다. private lazy var customLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.numberOfLines = 0 let paragraphStyle = NSMutableParagraphStyle() paragraphStyle.lineBreakMode = .byTruncatingTail paragraphStyle.lineBreakStrategy = .hangulWordPriority paragraphStyle.alignment = .center paragraphSty..
지난 포스트 [줄바꿈] lineBreakMode 및 lineBreakStrategy 차이점을 작성하면서 UILabel에 attributedText를 사용하는 경우에는 label.lineBreakMode가 무시되고, attributedText의 paragraphStyle.lineBreakMode를 설정해야 한다는 걸 봤다. 근데 실험해보니 잘못된 정보였음.. 🫠🫠🫠 둘 다 사용했을 때 마지막에 설정한 값으로 적용되는 것을 확인했다. 아래처럼 2개 방법으로 코드를 작성해서 비교해봤다. 방법-1. label.lineBreakMode 먼저 -> paragraphStyle.lineBreakMode 나중에 설정 방법-2. paragraphStyle.lineBreakMode 먼저 -> label.lineBreakMo..
lineBreakMode, lineBreakStrategy는 둘 다 필요할까? 결론부터 말하자면 원하는 스타일에 따라 둘 다 필요할 수도 있다. UILabel의 텍스트가 길어질 때 한글 단어 기준으로 줄바꿈하기 위해 lineBreakStrategy = .hangulWordPriority를 사용한 적이 있었는데, 이때 lineBreakStrategy가 lineBreakMode를 대체 가능한 거라고 착각했다. 근데 아니었음.. 둘의 차이점을 알아보자. 결론 아래 같은 스타일로 구현하고 싶다면 lineBreakMode, lineBreakStrategy 둘 다 필요하다. 1. lineBreakMode 공식문서를 보자. NSParagraphStyle - lineBreakMode 음? 공식문서에 첫 문단에 정답이 ..
PTR (Pull To Refresh) 기능을 구현할 때 기본 RefreshControl을 사용할 수도 있지만 이번에는 Gif 파일을 넣어서 만들어봤다. Gif 이미지 처리에 대한 포스팅이 별로 없어서 기록해본다. 이건 Apple에서 제공하는 default RefreshControl이다. Gif를 적용한 RefreshControl을 아래처럼 만들어봤다. RefreshControl의 목적은 "지금 Loading 중임. 잠시만 기다려" 이므로 좀 더 Loading 효과스러운 Gif를 써도 된다. 이번에는 애니메이션을 설명하려고 호머 심슨 Gif를 가져왔다. 3단계만 있으면 된다. 매우 간단하다. 1. Gif를 넣어서 ImageView 초기화 2. RefreshControl에다가 Gif 올리기 3. Colle..
대부분 앱의 설정 화면에서, 또는 특정 기능을 사용하기 직전에 사용자가 Push Notification, 광고 추적 허용 등의 설정값을 변경할 수 있도록 기본 설정 앱 (Settings 앱)을 띄워준다. 덕분에 사용자가 설정 앱을 열고, 특정 앱을 찾아볼 필요가 없다. 구글링으로 간단히 찾을 수 있었다. 검색 키워드 : ios how to show settings app Stack overflow > Opening the Settings app from another app에 나온 대로 해보니 잘 실행된다. private func showAppSettings() { guard let settingsURL = URL(string: UIApplication.openSettingsURLString) else ..
대부분 앱의 설정 화면에서 현재 설치된 버전 정보를 알 수 있다. 그리고 해당 앱의 최신버전이 나왔다면 업데이트 버튼을 탭했을 때, 사용자에게 AppStore 화면을 띄워준다. 덕분에 사용자가 AppStore에서 해당 앱을 직접 검색할 필요가 없다. 구글링을 통해 간단히 방법을 찾을 수 있었다. 검색 키워드 - ios how to link appstore Stack overflow > How to link to apps on the app store에서 시킨대로 했더니 잘 된다. @objc private func updateButtonTapped() { let appID = "1234" let appStoreURL = "itms-apps://itunes.apple.com/app/id\(appID)" gu..
김창준 저 를 읽었다. (도서 링크) 회사에서 자기 계발에 대해 얘기하다가 팀 리더의 추천으로 책을 읽게 되었다. 이 책에서 저자는 애자일의 핵심은 함께 자라기, 즉 ‘학습’과 ‘협동’이라고 말한다. 팀원들과 신뢰를 쌓고, 팀이 함께 학습하고 현업에 성공적으로 적용하기 위해 필요한 것들을 설명하며, 다양한 성공/실패 예시를 담고 있다. 먼저 한국인이라면 익숙할 여러 교육 철학을 저자가 정면으로 비판해서 웃겼다. 처음에 무조건 도인이 시키는 대로 따라 하다 보면 내공이 쌓이고, 결국 도인의 비법을 전수받아 득도한다는 유명한 이야기가 사실은 허무맹랑한 판타지이고, 이 메타포로 인해 많은 교육적 문제가 생겼고, 심지어 이 미명 하에서 교육적 폭력이 자행되어왔다는 내용이 있는데, 크게 공감이 갔고 동시에 씁쓸했..
UserDefaults 관련 코드를 보다가 UserDetaults.standard.string(forKey:) 메서드를 봤는데, object(forKey:) 메서드와의 차이점이 궁금해서 검색해봤다. UserDefaults, 기본적인 key-value pair와의 차이점에 대한 기본적인 설명은 생략했다. UserDefaults 관련 메서드는 이렇게 다양한데, 저장값을 string, bool, integer, double 등 타입별로 구분하면 번거로우니까 한 방에 퉁쳐서 저장할 수 있는 object를 쓰는 게 낫지 않을까? 하는 생각을 했다. -> 결론적으로 아니었음 공식문서 우선 공식문서를 살펴봤다. 대표적인 메서드인 object(forKey:) / bool(forKey:) / string(forKey:)..