분류 전체보기 220

[iOS/Swift] CollectionView의 cell 내용이 다른 cell 내용과 섞이는 이슈 해결

1. Issue 영상과 같이, collectionview 안의 이미지 collectionview의 contents가 스크롤했다가 위로 올라가면 내용이 바뀌는 이슈가 있었음 2. Problem UITableView/UICollectionView의 cell은, 스크롤할 때 스크롤 하기 전 보여주었던 셀을 재사용하기 때문에 이미 이전에 보여주었던 이미지를 사용함으로써, 스크롤했다가 다시 올라가면 이전에 아래로 스크롤했을 때의 셀의 이미지를 보여주게 됨 3. Solution 컬렉션뷰가 셀을 그릴때, 셀의 내용을 초기화하여 뷰를 다시 그리는 'prepareForReuse' 메소드를 override 하여, 이미지를 초기화해준다. 이렇게 이미지를 초기화한 이후에 cellForRowAt을 거쳐 뷰를 다시 그리게된다.

[Swift] 코딩테스트에 필요한 문법 총정리

문자열/컬렉션문자열/배열✅ 배열 초기화https://developer.apple.com/documentation/swift/array// Shortened forms are preferredvar emptyDoubles: [Double] = []var emptyDoubles = Array()var emptyDoubles = [Double]()// The full type name is also allowedvar emptyFloats: Array = Array()var numbers = [1, 2, 3, 4 ,5]var answer = Array(numbers[1...3])print(answer)// Prints "[2, 3, 4]"var ex_4 = Array(1...10)// [1, 2, 3, 4, ..

[Swift/Python] 코테 준비에 알아두면 좋을 사항 / 코드

Swift, Python 둘다 준비해서 코드가 섞여있습니다. Swift ✅ 시간초과가 발생할 경우, 아래를 살펴보자. 1) 고차함수를 많이 사용하지는 않았는가? 반복문 안에 고차함수가 들어가있지는 않은가? 2) 배열 대신 튜플을 사용할 수 있는가? 3) 수의 범위가 큰데 반복문을 2-3개씩 돌린다거나 하지는 않는가? -> 시간복잡도 확인 4) 백준이고, 위 문제 모두 아니고 알고리즘이 맞는것 같은데 시간초과가 난다..? 하면 백준 특유의 시간초과 문제일 수 있음. - 이럴땐 FileIO 클래스를 사용하자. (라이노님 FileIO 클래스 외에도 더 빠른 FileIO가 있다고 함) -> 하지만 백준에서만 해당 파일을 사용할 일이 있고 코딩테스트에서는 쓸일이 없어서 .. 그냥 파이썬 코드 그대로 옮겨보고 맞는..

[iOS/Swift] FSCalendar로 캘린더 구현하기

🔥 목표는 위 캘린더를 구현하는것! - 저는 Snapkit으로 구현하였습니다. 1. FSCalendar 뷰 생성 및 delegate, datasource 선언 private var calendar = FSCalendar() //viewDidLoad() calendar.delegate = self calendar.dataSource = self 2. 달력 기본값 세팅 calendar.scope = .month //월 표시 calendar.locale = Locale(identifier: "ko_KR") //요일을 한글로 표시하기 위함 3. 헤더 - 기본 설정 calendar.appearance.headerDateFormat = "YYYY년 MM월" //헤더 포맷 calendar.appearance.head..

[iOS/Swift] UIScrollview 원리 / 코드로 구현하기 (UIScrollView Programatically/snapkit)

(사이드 프로젝트에서 스크롤뷰로 삽질을 정말 많이해서 정리해보는 포스트....😠) 스크롤뷰 구현의 핵심을 정리해보면 다음과 같습니다. 1. contentView의 constraint는 scrollView 사면에 맞추기 (top, leading, trailing, bottom -> equal to scrollView) 2. view에 scrollView를 추가하고, scrollView에 contentView 추가 및 contentView에 뷰를 구성하는 요소들을 추가한다. 3. 세로 스크롤뷰의 경우 contentView의 width는 scrollView의 width와 동일하게, 가로 스크롤뷰의 경우 contentView의 height을 scrollView의 height과 동일하게 맞춘다. 4. conten..

[iOS/Swift] 사이드프로젝트 버그 정리

1. 처음 회원가입 후 진입시에 API가 동작하지 않는 현상 - 원인 : API에 사용되는 헤더(jwt값)가 'static' 즉 정적변수이기때문에 프로그램 처음 실행할 때 한 번 값이 할당된 이후에는 값이 바뀌지 않음 reference : https://wikidocs.net/228 07-03 정적(static) 변수와 메소드 이번에는 스태틱(static)에 대해서 알아보자. [TOC] ## static 변수 예를 들어 다음과 같은 HouseLee 클래스가 있다고 하자. *Sample. ... wikidocs.net - 해결 : 앱 실행 후에 회원탈퇴 후 재가입 혹은 기타 계정으로 로그인하는 경우까지 고려해야하므로 정적이 아닌 동적 변수로 선언 후 동적으로 값 할당 2. 텍스트필드가 키보드에 의해 가려지..

[iOS/Swift] Tableview/Collectionview 페이징 (Pagination)

1) UIScrollViewDelegate - TableView, CollectionView에는 스크롤이 내장되어있으므로 UIScrollViewDelegate 이용이 가능하다. 현재 테이블뷰/스크롤뷰가 있는 UIViewController에 UIScrollViewDelegate를 상속한다. 2) 필요 변수 - arraylist : 무한스크롤하여 불러올 데이터를 담을 array list 준비 -> 초기에는 빈 리스트 - pageNum : API의 pageNumber 변수 - fetchingMore : 더 스크롤하여 데이터를 불러올지에 대한 boolean 변수 -> 초기에는 true 값 3) scrollViewDidScroll 함수 그 다음, scrollViewDidScroll 함수에서 스크롤이 끝까지 닿았는..

[Android] MVVM + Coroutine + Retrofit

MVVM + Retrofit + Repository의 전체적 구조 MVVM은 뷰 관련 로직이 ViewModel에 종속되는 패턴이다. 즉 UI 관련 데이터가 ViewModel에 있고 뷰는 이 뷰모델을 관찰(observing)하면서 변화하는 내용들을 업데이트한다. ViewModel은 뷰에 사용되는 데이터를 요청하면, Repository는 Room (내부 Database) 혹은 Retrofit이 네트워크를 통해 통신한 내용을 ViewModel에 전달해주는 방식이다. 그래서 이 내용을 Retrofit을 통해 API 통신하는 부분에 적용하면 다음 절차로 진행된다! 1. 레트로핏 인터페이스를 생성하고, API를 통신한 결과를 response 모델로 반환하도록 해둔다. 2. 해당 인터페이스를 통해 데이터를 가져오는 ..

🤖 Android 2021.11.03
반응형