본문 바로가기

💡 Today I Learned28

[스터디2일차][RxSwift] 연산자 1.  결합 연산자(Combine)여러 Observable을 결합하여 하나의 Observable로 만듦  1-1.  merge여러 Observable을 병합하여 하나의 Observable로 결합각 Observable은 독립적으로 동작하며 값이 발생하는 즉시 병합되어 방출된다(순번X)활용 예시let observable1 = Observable.of(1, 2, 3)let observable2 = Observable.of(4, 5, 6)Observable.merge(observable1, observable2) .subscribe(onNext: { value in print(value) }) //방출되는 순서에 따라 1, 2, 3, 4, 5, 6 또는 다른 순서일 수 있다   1-.. 2024. 10. 11.
[스터디1일차][RxSwift] Observable & Subject 1.  Observable비동기적으로 데이터를 방출하는 데이터 소스이며 여러 이벤트를 통해 데이터를 전달함구독자(Observer)는 Observable을 관찰(구독 Subscribe)하고 있다가 전달되는 이벤트를 처리한다  1-1.  전달되는 주요 이벤트onNext새로운 데이터를 방출할 때마다 호출됨onError에러 방출 후 더이상 데이터를 방출하지 않음onCompleted오류가 발생하지 않았다면 마지막 onNext를 호출한다. 더이상 이벤트가 발생하지 않는다 → onError, onCompleted는 Observable 라이프사이클 가장 마지막에 전달된다.     Observable이 종료되면 모든 리소스가 정리되기 때문에 다른 이벤트가 전달되지 못하며, error, complete 발생 시 dispo.. 2024. 10. 7.
[오류] UIButton 내부의 image 크기 조절 인스타그램의 좋아요 버튼처럼 UIButton을 image로 설정할 때가 종종 있다이번 프로젝트에서 버튼을 만들었는데, 버튼에 텍스트 없이 이미지로만 설정을 했고 크기를 키우려고 했는데 크기가 안 키워지는 이슈 발생🥲  하이어라키로 보면 버튼의 레이아웃 사이즈만 늘어나고 이미지인 하트는 크기가 변경되지 않은 모습을 볼 수 있다  먼저 버튼의 contentMode 를 scaleAspectFit으로 설정했다 • scaleAspectFit: 이미지의 원래 비율을 유지하며, 뷰의 크기에 맞추어 이미지가 축소 또는 확대된다 (=여백이 생길 수 있다) • scaleToFill: 이미지가 뷰의 크기에 정확히 맞도록 조정되지만, 이미지의 원래 비율이 유지되지 않는다 → 실패   두번째로 이미지의 엣지 인셋을 .zero.. 2024. 8. 30.
[오류] UITableViewCell에 UICollectionView 추가 오류 테이블뷰 셀에다가 컬렉션뷰를 넣어야 하는데, 슈퍼뷰에 정상적으로 추가되지 않는다는 오류가 발생했다  코드를 보면 제일 처름에 컬렉션뷰가 계산 프로퍼티로 선언되어 있는데,슈퍼뷰에 추가된 부분은 하단에 존재해서 앱의 생명주기와 맞지 않아서 오류가 생긴 거였음( = collectionView에 접근할 때마다 새로운 인스턴스가 생성)  lazy var로 초기화 시점을 늦춰주면 해결됨  정리 ---기존 방식(계산된 프로퍼티)• collectionView에 접근할 때마다 새로운 인스턴스가 생성되었기 때문에, addSubview()로 추가한 collectionView와 제약 조건을 설정하려는 collectionView가 서로 다른 인스턴스일 수 있음수정된 방식(lazy var)• collectionView가 처음 접.. 2024. 8. 27.
[오류] 테이블뷰 이벤트 발생 시 UI 작업이 중단되는 현상(스톱워치) 오류내용아래 영상과 같이 스톱워치에서 랩 기록 후 테이블뷰 스크롤 시 타이머가 중단됨!!  애플 공식문서를 확인해보니어떤 스레드에서 작업할지 설정 가능한 DispatchSourceTimer가 있다고 함https://developer.apple.com/documentation/dispatch/dispatchsourcetimer DispatchSourceTimer | Apple Developer DocumentationA dispatch source that submits the event handler block based on a timer.developer.apple.com  나는 지금 Timer을 이용해서 스톱워치 작업을 했는데 일단 바꿔줌  오류 발생  이벤트 발생 시 타이머가 중단되지 않게하기 위.. 2024. 8. 20.
[오류] TableView 라인이 오른쪽으로 쏠릴 때 🚨 오류내용 전에도 겪었던 문제인데, 테이블뷰로 데이터가 찍힐 때 라인이 오른쪽에 붙어있는 것    💫 해결 방법 1 .separatorInset.left = 0  를 줘서 왼쪽 inset을 0으로 줘버리면 아래 화면처럼 라인이 양쪽으로 딱 붙는 모습을 볼 수 있다   💫 해결 방법 2 아니면 아래 코드처럼 각각 Inset을 따로 줄 수도 있다 2024. 8. 19.