- orthogonalScrollingBehavior
- lineBreakStrategy
- 애플사이다
- Human Interface Guidelines
- 전달인자 레이블
- UIKit
- iPad
- Swift
- TOSS
- CollectionView
- LanguageGuide
- HIG
- GOF
- 야곰아카데미
- iTerm
- UILabel
- WWDC
- 애플
- Keychain
- Split View
- 앱개발
- github
- 스위프트
- 디자인패턴
- Accessibility
- Combine+UIKit
- IOS
- lineBreakMode
- DiffableDataSource
- Apple
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
목록iOS (37)
애플사이다의 iOS 개발 일지
Profile 화면을 구현하다가 컬러가 2개 이상 적용된 이미지를 사용했을 때 이미지 전체가 tintColor로 뒤덮이는 문제가 발생했다. (왼쪽처럼 구현하고 싶었는데, 오른쪽처럼 나타남) 대부분의 화면에서 이미지를 올릴 때 renderingMode를 .alwaysTemplate으로 설정했는데, 이게 원인이었다. 이미지의 renderingMode 3개 종류인 automatic/alwaysOriginal/alwaysTemplate을 정리했다. 결론 2개 종류의 이미지를 일반 화면 및 TabBar에 올리고, Rendering Mode를 automatic, alwaysOriginal, alwaysTemplate 순으로 지정해봤다. Custom Image : 흰색, 회색 2개 컬러가 사용된 이미지 System ..
대부분의 상용 앱에는 My 탭 또는 설정 탭의 '문의하기' 항목이 있다. 문의하기를 누르면 Mail 앱 (시스템 기본 앱)을 띄우면서 이메일을 작성하도록 사용자를 유도할 수 있는데, 이때 수신자 메일주소, 제목, 내용에 미리 원하는 값을 채워서 이메일 템플릿을 만들 수 있다. private func showEmailWithTemplate(subject: String, body: String) { // ✅ 이메일 템플릿 설정 var components = URLComponents() components.scheme = "mailto" components.path = "whatWeEat_help@gmail.com" // 메일 주소 components.queryItems = [ URLQueryItem(name..
나중에 복붙해서 사용하려고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..