본문 바로가기

ios18

[iOS] 스토리보드(Storyboard)에서 ImageView Tint Color 적용하기 스토리보드에서 ImagView를 추가하고 Tint에 색상을 변경하여도 작동하지 않습니다.Accets 이미지의 렌더러 모드를 템플릿으로 변경하고 ImageView의 Tint 색상을 변경하면 적용된다.1. Accet 이미지를 템플릿으로 변경한다. 2. ImageView의 Tint를 변경한다. 참고 : 아래는 코드로 ImageView의 Tint 색상을 변경하는 방법입니다.cell.ivRoute.image = UIImage(named: "route_busstop")?.withRenderingMode(.alwaysTemplate)cell.ivRoute.tintColor = .red 2024. 5. 9.
[iOS] Alamofire 한글(EUC-KR) 인코딩하기 Alamofire를 사용할 때 EUC-KR로 된 경우 한글이 깨지는데 Response을 인코딩 하는 방법입니다.Alamofire.request(strUrl).responseData() { response in switch response.result { case .success(let data): let dataString = NSString(data: data, encoding: CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(CFStringEncodings.EUC_KR.rawValue))) let strHtml = dataString as? String ?? "" let doc = try Swif.. 2024. 5. 8.
[iOS] String 한글(EUC-KR) 인코딩 대부분의 우리나라 사이트는 인코딩 UTF-8로 사용하고 있지만, 관공서의 사이트는 EUC-KR을 사용하는 곳이 많습니다.관공서 사이트를 크롤링하려면 파라메터 등을 EUC-KR로 처리해야 하는데 아래의 함수로 처리하였습니다. static func euckrEncoding(_ query: String) -> String { //EUC-KR 인코딩 let rawEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringEncoding(CFStringEncodings.EUC_KR.rawValue)) let encoding = String.Encoding(rawValue: rawEncoding) let eucKRStri.. 2024. 5. 8.
[iOS] Command PhaseScriptExecution failed with a nonzero exit code iOS 개발을 할 때 디버거로 컴파일하고 시뮬레이터에 앱이 잘 실행되는데 앱스토어에 앱을 올리기 위해서 Product > Archive 실행하니 아래와 같은 오류가 발생합니다.Command PhaseScriptExecution failed with a nonzero exit code해결방법은 아래의 위치에서 source="$(readlink "${source}")"를 source="$(readlink -f "${source}")"와 같이 변경 후 다시 Archive 를 실행하면 정상적으로 컴파일됩니다. 2024. 5. 7.
iOS Swift TextField 클리어 버튼 시 소프트 키보드 올라오는 현상 해결방법 TextField의 클리어 버튼을 탭하면 TextField의 내용이 지워지고, 소프트 키보드가 올라오는데 이 키보드가 올라오지 않게 하는 간단한 방법입니다.약간의 꽁수를 썼는데, 크리어 버튼이 눌러질 때 TextFiel의 isEnabled를 false로 지정해서 비활성화 시키고 DispatchQueue를 이용하여 0.1초 후 다시 활성화를 시켜서 문제를 해결했습니다.  func textFieldShouldClear(_ textField: UITextField) -> Bool { searchRecent() tfSearch.isEnabled = false DispatchQueue.main.asyncAfter(deadline: .now().. 2024. 5. 6.
[iOS] Sandbox: rsync.samba... 오류 해결 방법 iOS 프로젝트에 Tabman 라이브러리를 CocoaPods로 적용 후 아래와 같은 오류가 발생했습니다. 구글링해서 찾아보니 프로젝트 Build Settings에서 User Script Snadboxing의 값을 No로 설정하고 다시 빌드하면 오류가 발생하지 않습니다. 2024. 4. 25.
[iOS] xcode 프로젝트에 CocoaPods 사용하기 xcode 프로젝트를 생성하고 CocoaPods로 라이브러리를 사용하기 위한 작업순서입니다.개인적으로 안드로이드와 iOS를 함께 개발 하다보니 새로운 iOS 프로젝트를 생성하고 CocoaPods 사용하는 방법을 잊어서 정리합니다. 1. 터미널로 xcode 프로젝트 폴더로 이동합니다.2. CocoaPods을 적용합니다.pod init아래와 같이  Podfile 파일이 생성됩니다. 3. Podfile에 라이브러리(pod 'Tabman', '~> 3.2' )를 추가했습니다.# Uncomment the next line to define a global platform for your project# platform :ios, '9.0'target 'TabTest' do # Comment the next l.. 2024. 4. 25.
iOS 상태바(Status Bar) 글자 색깔 밝게 변경하기 iOS의 상단 상태바의 색상을 밝게(Light Content) 변경하는 방법입니다. 기본은 아래의 이미지와 같이 검은색(Dark Content)로 되었습니다. 1. 프로젝트 네비게이터에서 프로젝트를 선택합니다. 2.프로젝트 설정들에서 Info 탭을 선택합니다. 3. Custom iOS Target Properties에 "Status bar Style"과 "View controller-based status bar appearance"를 아래와 같이 추가합니다. Status bar style : Light Content View controller-based status bar appearance : NO 4. 프로젝트를 실행하면 아래와 같이 상태바의 색깔이 변경됩니다 2023. 3. 21.
iOS Swift UILabel에 Padding 적용하기 UILabel에는 아쉽게도 Padding을 적용 할 수 없습니다. 그래서 UILabel을 상속 받은 클래스에 Padding을 적용 할 수 있도록 처리를 해야 합니다. Padding을 적용하는 방법에 대해서 알아보겠습다. 1. Xcode 에서 Swift 파일(PaddingLabel.swift)을 추가합니다. 2. PaddingLabel.swift에 아래의 코드를 작성합니다. import UIKit @IBDesignable class PaddingLabel: UILabel { @IBInspectable var topPadding: CGFloat = 0.0 @IBInspectable var leftPadding: CGFloat = 0.0 @IBInspectable var bottomPadding: CGFloa.. 2023. 3. 16.
iOS UITextField 비활성화(수정 못하게) 하고, 클리어 버튼은 활성화 시키기 안드로이드 개발자로써 서서히 iOS 개발의 위한 스터디를 하고 있습니다. UITextField에 수정을 못하게 하고, 클리어 버튼을 사용해야 하는 경우 가 발생하여 처리 할 수 있는 방법을 구글링에서 찾았습니다. 1. UITextField를 화면에 넣습니다. 2. TextField의 속성에서 클리어 버튼(Clear Button)을 추가합니다. 3. 해당 ViewController에 TextField의 변수를 연결합니다. import UIKit class ViewController: UIViewController { @IBOutlet weak var textField2: UITextField! } 4. ViewController에 프로토클 UITextFieldDelegate을 상속 받습니다. import .. 2023. 3. 2.
Xcode 14에서 Main 스토리보드 지정하기 Xcode 14에서는 프로젝트 설정의 General에 Main Interface 속성이 없어졌습니다. 어딘가에 있을 것 같아서 찾아보니 프로젝트 설정의 Info으로 변경되었습니다. 아래의 그림에서와 같이 Info > Custom iOS Target Properties > Main storyboard file base name에 Main 스토리 보드를 지정하면 됩니다. 2023. 2. 8.
[iOS 앱 개발] Swift 함수에 참조 매개변수 전달 Swift의 함수에 매개변수를 참조로 전달 할 수 있습니다. 즉 변수를 지정하고, 매개변수를 참조로 전달 후 함수내에서 매개변수의 값이 변경되면 함수 밖에서도 해당 변수의 값은 변경이 됩니다. syntax는 inout으로 지정하며 함수 문법은 아래와 같습니다. func [함수명]([파라미터 이름]: inout [데이터 타입]) -> [반환 타입] { return [반환 값] } 일반함수 예로 두변의 값을 서로 교체하고 싶을 때 튜블을 리턴하는 함수를 생성하여 두 변수의 값을 교체하는 예제는 아래와 같습니다. 참조 매개변수로 전달하지 않고, 리턴 값으로 처리하는 코드입니다. func swapInts(a : Int, b : Int) -> (a : Int, b : Int){ return (b, a) } var.. 2022. 10. 5.
[iOS 앱 개발] Swift 배열(Array) 스위프트의 배열에 대해서 간단한 코딩 예제들입니다. 약간 생소하긴 하지만 차근차근 익혀하고 있습니다. 빈 배열 초기화 var arr1 : [Int] = [] var arr2 = [Int]() var arr3 : Array = [] 배열 초기화 var arr1 : [Int] = [1,2,3,4,5] var arr3 : Array = [6,7,8,9,0] 여러타입 배열 초기화 var intArr : [Int] = [] var doubleArr : [Double] = [] var boolArr : [Bool] = [] var stringArr : [String] = [] 배열에 추가하기 var intArr : [Int] = [] // 추가하기 intArr.append(1) // += 연산자 사용 intArr .. 2022. 9. 1.
iOS 앱 개발해볼까 안드로이드를 개발해서 앱을 출신하기 시작한지 벌써 10년이 넘은 세월을 보냈습니다. 10년의 세월동안 안드로이드는 Java에서 코틀린이라는 언어가 추가되기도 했지만, 아직 코틀린은 스터디하지 않았습니다. iOS 앱 개발을 위해서 React-Native를 사용해서 몇개의 앱을 출시하기도 했지만, 뭔가 부족한 느낌을 갖고 있습니다. 그래서 큰 마음을 먹고 iOS 앱 네이티브로 개발하기로 방향을 잡고, Swift를 공부 시작하려고 합니다. 장비도 맥북을 올해 하반기에 구입 할 예정입니다. 빠른 습득을 위해서 학원을 알아보았지만, Swift로 iOS를 개발하는 강의는 수요가 없어 학원측에서는 강의가 없다고 하네요.ㅠㅠ 독학으로 iOS 개발을 위한 스터디를 진행하기로 마음을 먹었습니다. 우선 Swift 언어에 대.. 2022. 8. 31.
React-Native iOS 15.2.1 앱 추적 투명성(App Tracking Transparency) 앱스토어 심사 리젝(반려) iOS 앱 추적 투명성(App Tracking Transparency) 관련하여 하기와 같이 리젝 처리가 되었습니다. 요약해보면 iOS 15.2.1에서 앱 추적 투명성 승인여부 다이얼로그가 표시가 안되기 때문에 리젝되었습니다. 앱 추적 투명성(App Tracking Transparency) 구현을 위한 react-native-tracking-transparency 패키지의 문제로 생각하고 구글링을 해보았으나 정확한 해법을 찾기 쉽지는 않았습니다. iOS 15.2.1 에서는 아래와 같이 requestTrackingPermission() 함수를 호출해주면 앱스토어 심사를 통과하는데, 정확한 이유는 알 수 없네요. ㅠㅠ setTimeout(async () => { requestTrackingPermission.. 2022. 1. 20.
React-Native iOS 앱 심사 반려(구글 맵 관련) React-Native로 제작된 iOS앱인 서울버스-도착정보가 앱 심사에서 반려가 되었습니다. 기존에 URL Link로 구글맵에 마크를 표시하는 기능의 URL을 변경했는데. 이것이 문제였습니다. 아래와 같이 URL을 변경했는데 변경된 URL에 문제가 있네요. 변경된 URL로 Linking.openURL 할 경우 구글맵이 실행되고 마크가 표시되는데 이것이 심사 반려된 이유였습니다. [기존 URL] http://maps.google.com/maps?&z=15&q=35.1560856,129.055346 [변경 URL] https://www.google.com/maps/search/?api=1&query=35.1560856,129.055346 상세한 관련 포스트는 아래의 참고하세요. https://docko.t.. 2021. 2. 26.
React-Native iOS 애드몹(Admob) 적용 React-Native에서 iOS 애드몹 적용 순서입니다. 화면(Screen)의 View에 적용은 생략합니다. 1. Module 설치 npm i --save react-native-admob@next - 자세한 내용은 아래의 사이트를 참고하세요. https://github.com/sbugert/react-native-admob sbugert/react-native-admob A react-native component for Google AdMob banners. Contribute to sbugert/react-native-admob development by creating an account on GitHub. github.com 2. Info.plist에 Admob 앱ID를 입력 (Info.pli.. 2020. 7. 21.
iOS에 Admob Framework 링크 시 함께 링크해야 할 Framework 목록 iPhone 앱에 Admob 광고를 넣기 위해서는 xcode에서 Admob Framework을 링크해야 하는데, 함께 링크해야 하는 Framework 목록 입니다. MessageUI.framework GLKit.framework AdSupport.framework MediaPlayer.framework StoreKit.framework CoreMotion.framework GameController.framework 2018. 6. 29.