- 스위프트
- CollectionView
- GOF
- TOSS
- IOS
- lineBreakMode
- 디자인패턴
- LanguageGuide
- iPad
- 전달인자 레이블
- Swift
- orthogonalScrollingBehavior
- lineBreakStrategy
- Accessibility
- DiffableDataSource
- 애플사이다
- 애플
- WWDC
- Apple
- 앱개발
- Human Interface Guidelines
- Split View
- Keychain
- iTerm
- Git
- UILabel
- 야곰아카데미
- appstore
- HIG
- github
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
목록전체 글 (76)
애플사이다의 iOS 개발 일지

현업에서 Objective-C로 작성된 레거시 코드를 이해해야 할 때 근데 공부하기는 싫을 때... Object-C를 Swift로 변환해주는 기능을 사용하면 좋다. SWIFTIFY Swift화 해준다는 뜻의 SWIFTIFY라는 사이트를 추천한다. 사이트 네이밍 잘 지었다. 사용 방법은 매우 간단한데, Objective-C 코드를 넣고 하단의 Convert Now 버튼을 탭하면 Swift로 변환이 된다. 코드 용량이 0.5KB을 초과하면 Sign in (회원가입)을 하라고 한다. 무료 서비스지만 회원가입 시 2회/일로 횟수제한이 있어서 귀찮아도 회원가입 안하고 코드를 여러 번 복붙하면서 쓰고 있다. ChatGPT 23년 2월 업데이트 이제 Swiftify 같은 거 필요없다.. ChatGPT한테 물어보면 길..

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 ..