분류 전체보기
-
Rxswift combineLatest 에러 The compiler is unable to type-check this expression in reasonable time개발/Swift 2023. 7. 1. 13:47
The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions Rx - combine latest 에 9개 이상의 observable을 넣었더니 에러가 발생 CombineLatest를 쓸떄 8개까지만 쓸수가 있다 이를 해결하기위해 여러 더많은 Observable을 쓰려면 combine 을 하고 그거를 가지고 combine 해줘야한다. let searchCombinedObservable = Observable.combineLatest(searchKeyword.asObservable(), eFriendList.asObservable(..
-
커스텀 UISlider 구현하기 (세로 슬라이드, 이벤트)개발/Swift 2023. 6. 24. 17:13
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Swift Modern Collection View & MVVM 패턴 가이드 | 덤벨로퍼 - 인프런덤벨로퍼 | MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., Swift iOS UI, 제대로 다루는 핵심 기술! 📲 iOS Swift 레이www.inflearn.com UI 커스텀private class CustomSlider: UISlider { override init(frame: CGRect) { super.init(frame: .zero) minimum..
-
Collection View가 들어있는 동적 높이의 Table view Cell 구현하기개발/Swift 2023. 6. 18. 17:48
Table view cell 안에 Collection view를 넣어 Grid나 Horizontal 형식의 리스트를 구현해야 할 때가 있다. 기본적으로 Collection view Compositional layout 을 써도 되지만 회사에서 신기술을 쓰기 어려울 상황도 있기에... 이런 상황에 table view cell에 리스트 뿐만 아니라 하당 셀을 접고 펴는등의 액션을 구현해야 할때 결국 상황에 따라 높이가 변하는 Dynamic Height 는 피할수 없다. Cell 을 그릴때 제약조건을 변경해서 높이를 지정해주기 접고 펴는 상태 값, 리스트에 들어가야할 데이터들 등등은 cellForRowAt이나 Rx에서 데이터 바인딩할때 (VC에서 cell을 리턴하는 시점) Cell에 특정 함수를 통해 넣어주고..
-
Tableview와 스크롤을 다루는 방법개발/Swift 2023. 5. 31. 18:17
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Swift Modern Collection View & MVVM 패턴 가이드 | 덤벨로퍼 - 인프런덤벨로퍼 | MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., Swift iOS UI, 제대로 다루는 핵심 기술! 📲 iOS Swift 레이www.inflearn.com Tableview의 길이가 길어져서 디바이스의 높이보다 길어지는순간스크롤을 사용할수 있고 그덕에 긴 컨텐츠를 한 페이지에 보여줄수 있다.그래서 table view의 사용목적 자체가 스크롤과 연관이 깊다.이로 인해 스크롤과 테이블뷰 간의 관계를 잘..
-
Swift Bottom Sheet 바텀시트 구현하는 방법 + 동적 높이 할당개발/Swift 2023. 5. 24. 17:02
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Modern Collection View & MVVM 패턴 가이드 - 인프런 | 강의 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., - 강의 소개 | 인프런 www.inflearn.com 보통 navigation 의 present 함수를 통해 버텀 시트를 구현 하면 좋지만 해당하는 높이가 아닌 낮은 높이의 바텀시트를 구현 하기 위해서는 결국 Custom 하게 만들어야 한다. 그러려면 결국 ViewController 안에 배경을 흐릿하게 하고 안에 Content View 를 넣어주어 해당 View를 Botto..
-
Swift Tooltip 구현하는 방법개발/Swift 2023. 5. 21. 15:59
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Modern Collection View & MVVM 패턴 가이드 - 인프런 | 강의 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., - 강의 소개 | 인프런 www.inflearn.com 이런거를 구현해야했다. 텍스트, 둥근 오렌지색 배경은 문제 없이 구현 가능하나 문제는 밑에 달린 뾰족한 부분(Tip) 을 직접 그려내야 한다는것이다. 그리는 방법은 우선 4개의 점을 지정해줘서 점을 이은 4각형의 (정확히는 마름모) 레이어를 만들어 배경색을 넣어주고 해당 View 레이어에 넣어줘야 한다. 4개의 지점을 지정..
-
확장 축소 가능한 동적 높이 TableView 구현 하기개발/Swift 2023. 4. 16. 13:46
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Modern Collection View & MVVM 패턴 가이드 - 인프런 | 강의 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., - 강의 소개 | 인프런 www.inflearn.com 동적 높이 셀 동적 높이 테이블뷰 확장 축소 가능 테이블뷰 Table view높이 구하기 테이블뷰의 높이가 컨텐츠에따라 유동적으로 설정이 되려면 높이를 지정해주지 않고 제약조건을 잘 설정 해주면 된다. titleLabel.snp.makeConstraints { make in make.top.equalTo(9) make.le..
-
Relay를 사용하면 무조건 메인스레드 일까개발/Swift 2023. 4. 2. 15:03
Relay나 Driver를 사용하면 에러나 complete이 없기때문에 UI 작업에 적합하다 알고있었기에 아무 거리낌없이 사용중이었다. var error: PublishRelay { get } 뷰 모델에서 에러가 발생하는경우 위 Relay에 에러를 accept 해서 뷰컨트롤러에 전달한다. 뷰컨트롤러는 해당 error 를 바인딩 하고 있다가 에러가 떨어지면 모달을 띄우는 역할을 하고있다. 네트워킹의 경우 background 스레드를 사용하고있다. 네트워킹에서 에러가 발생하는 경우 //Background Thread self.error.accept(error) 에러를 방출 시켜주었다. 이때 뷰컨트롤러에서 crash가 발생했다. modal을 띄우는것은 메인스레드를 쓰라는 것이다. viewModel.error ..