애플16 [Swift & iOS] UITableViewCell TextLabel deprecated 관련 iOS 14 이후부터 셀을 더 유연하게 구성하기 위해 UITableViewCell의 디자인 패턴을 업데이트 했습니다. 새로운 디자인 패턴에서는 textLabel, detailTextLabel, imageView 등의 속성 대신에 셀에 보여지는 컨텐츠를 개별적으로 구성할 수 있는 커스텀 콘텐츠 뷰를 사용하는 것이 권장됩니다. 예시 코드 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "identifier", for: indexPath) if #available(iOS 14.0, *).. 2024. 2. 27. [Swift & iOS] Xcode Code Sense Xcode로 코드를 작성하면서 클래스, 메서드, 변수 등의 이름을 입력할 때, 관련된 정보와 문맥을 분석하여 자동완성을 자주 사용하실겁니다. 그때 여러 리스트들과 함께 아이콘이 있는걸 보셨을텐데 아이콘이 어떤걸 의미하는지 정확히 알고자 정리해봅니다. 1. Red: macros 매크로 (#define) 2. Brown: Core Data / namespace C = modeled class M = modeled method P = modeled property N = C++ namespace 3. Orange: aliased types C_ = Objective-C category E = enum T = typedef / typealias Ex = Swift extension 4. Green: variab.. 2023. 8. 29. [Swift & iOS] 사파리에서 웹뷰 디버깅 inspect 안될때 이슈 하이브리드 앱을 만들면서 사파리로 inspect를 볼 일이 많아졌습니다. 근데 어느 시점부터 사파리에서 웹뷰를 인식 못하는 현상이 발생하였습니다. 이것저것 검색한 결과 16.4 이상 부터 isInspectable 변수를 true로 해줘야 된다고 합니다. 공식 사이트에선 아래와 같은 버전에선 해줘야 한다고 합니다. - iOS 16.4+ - iPadOS 16.4+ - macOS 13.3+ - Mac Catalyst 16.4+ 사용방법 웹뷰를 선언하는 곳에서 아래와 같이 사용 하면 됩니다. if #available(iOS 16.4, *) { self.webView.isInspectable = true } 이렇게 선언을 하게 되면 inspect 사용 할 수 있습니다. 릴리즈일 때 사용하지 않으려면 아래와 .. 2023. 5. 27. [Swift & iOS] 스토리보드 사용하지 않을 때 설정 Xcode로 UI를 그릴때 스토리보드로 그리거나 , 코드로 작성하는 방법이 있습니다. 코드로 UI를 작업할 때 필요없는 스토리보드를 삭제하는 방법을 공유하려고 합니다. 1. Main 스토리보드 파일 삭제 먼저 프로젝트를 생성하면 생기는 Main 스토리보드 파일을 삭제해줍니다. 2. 프로젝트 설정 프로젝트 설정에서 Main Interface 항목에서 Main을 지우고 Enter를 쳐줍니다. 3. Info.plist 설정 아래 그림과 같이 Storyboard Name 항목을 - 버튼을 눌러서 지워줍니다. 이 과정을 다 하면 프로젝트 내부에서 스토리보드 제거하는 작업은 완료 되었습니다. 이제 앱을 실행 할 때 Default Interface를 설정해 줘야 합니다. iOS13 이후부터는 SceneDelegate.. 2022. 6. 15. [Swift & iOS] @discardableResult 은 무엇인가!? 개발을 하다보면 Xcode에서 노란색으로 warning을 띄워 줄때가 있습니다. 노란 느낌표와함께 문구가 적혀있는데요 그중에서 Result of Call to 'xxxx' is unused 와 같은 warning을 자주 보게 될겁니다. 결과값이 사용되지 않았다는 걸 의미합니다. 함수를 만들어서 호출을 했지만 결과값을 사용하지 않을때 warning이 뜨는데 하지만 결과값을 필요 없는 경우도 있죠 func message(msg: String) -> String { return "\(msg) is called" } 이럴 때 @discardableResult 를 함수에 추가해주시면 warning이 사라지게됩니다. @discardableResult func message(msg: String) -> String .. 2022. 2. 9. [Swift& iOS] View reload 관련 에러 RxSwift로 CollectionView를 reloadData() 할 때 아래와 같은 에러가 발생하였습니다. Maybe delegate was already set in xib or storyboard and now it's being overwritten in code. 에러 내용은 간단합니다. 이미 delegate나 설정 되어있다는것입니다. 저 같은 경우 이미 Observable bind를 통해 CollectionView를 생성하였고 func fetchData() { output.showGearDetail .do{ self.gearDetail = $0 } .map{ $0.images } .do{ self.pageControl.numberOfPages = $0.count self.pageControl.. 2022. 2. 8. 이전 1 2 3 다음