전체 글 (206) 썸네일형 리스트형 [iOS] 레이아웃이 깨졌을 때 콘솔창 버그 ㅋ2022-04-26 13:03:40.451472+0900 DoGit[4494:107137] [LayoutConstraints] Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "", "", "", "" ) Will attemp.. [iOS] cellRegistration: cell 배경색 바꾸기 컬렉션 리스트뷰를 사용하다가 cell의 배경색을 바꾸려고 했지만 backgroundColor를 바꾸는 것으로는 바뀌지 않았다. cell.backgroundColor = .backgroundColor 해결방법 backgroundView를 배경색 view로 넣어주었더니 변경되었다. let background: UIView = { let view = UIView() view.backgroundColor = .backgroundColor return view }() cell.backgroundView = background 비슷한 방법으로 cell이 클릭된 것처럼 보이지 않게 하려면 selectedBackgroundView를 바꿔준다. let selectedBackground: UIView = { let vie.. [iOS] reloadItems, reconfigureItems 차이점 우선 이 함수를 쓰게 된 이유를 말해보자면 개인 프로젝트에서 Diffable datasource를 사용하면서 snapshot도 함께 사용하게 되었습니다. 만들던 프로젝트는 Todo 앱으로 버튼 클릭 시 isDone 변수의 값에 따라 UI가 업데이트되어야 했는데, 바뀐 Todo에 대하여 snapshot을 업데이트해도 UI가 업데이트되지 않았습니다. 해서 cell registration을 이용해 datasource를 다시 만들어 apply 시켰더니 적용은 됐지만 애니메이션 적용은 얻을 수 없었습니다. -> 사실 reloadItems, reconfigureItems 을 사용했어야 했는데 이제야 발견했고.. 발견한 김에 두가지 함수에 대해 차이점을 정리해보려고 합니다. 우선 경험으로 얻은 차이점을 보고 자세하게.. [두깃] 저장소 추가화면 (CollectionView list + Diffable DataSource) 기능구현 + 4.22 추가 사랑스러운 우리 시오를 떠나보내고 잠시 쉬었다가 기능 구현을 하느라 시간이 조금 오래 걸렸다. 저장소 추가 화면의 필요한 기능 1. searchBar 검색 시 검색 결과 스냅샷 apply 2. 체크 버튼 클릭 시 저장소 추가 (realm에) 3. 체크 버튼 해제 시 저장소에 저장된 할 일이 삭제된다고 alert 창 1. SearchBar 검색 구현 snapshot을 업데이트하기 전에 searchBar의 text로 필터링하여 생성한 GithubRepository 배열을 snapshot에 적용하였다. -> 정렬을 그냥 $0.name < $1.name 으로 하면 대문자가 소문자보다 앞에 정렬되기 때문에 모두 소문자로 바꿔주고 정렬하였다. func performQuery(with filter:.. [두깃] 저장소 추가화면 (CollectionView list + Diffable DataSource) 벌써 7번째 글이다..! 개인 프로젝트를 하면서 글 작성을 시작한 이유는 개발하면서 알게 된 것들을 시간이 지나면 잊어버리게 되기 때문에, 나중에 다시 보면서 기억하기 위해 시작하였다. + 끝을 보기 위해서.. 어제오늘은 대략적인 화면 UI 구성과 api 통신을 구현하였다. 메인화면 Todo UI 저장소 추가 화면 UI 두 화면 모두 CollectionView + Diffable Data source를 활용하였다. 왜냐하면 애플이 테이블 뷰를 사용하지 않고 컬렉션 뷰로도 리스트를 '유연하게' 구현할 수 있게 했기 때문에 이를 활용하였다. diffable data source는 기존의 reloadData 방식의 단점을 보완하고, 데이터가 변경될 때마다 애니메이션 🥰 이 자동으로 보이기 때문에 사용해보았다... [두깃] 에러처리 (Result) async, await 처리 실패 후 completion 클로저를 사용하여 api 통신하는 코드로 다시 바꿨었는데, 에러처리를 임시방편으로 마음대로 해놨다가 enum 을 사용하여 에러를 처리하기로 했다. 요리조리 시간이 더 걸리는 것 같지만.. 공부 목적이니까..! 원래 작성했던 코드는 isFetchUserData 라는 enum 을 만들어서 [ api 통신에 성공 & 입력한 아이디가 있을 경우 성공 ] 하면 success 실패하면 failed 를 클로저로 반환했다. 그리고 실행해서 결과를 받아 success 일때 모달창을 닫고, 실패하면 alert 창을 띄워줬다. 코드 더보기 enum IsFetchUserData { case success case failed } struct UserDataManager.. [두깃] 재밌는거 하는날 진동으로 피드백 주기 예전에 스파르타에서 들었던 강의 중에 진동 피드백 줬던 생각과 자주 사용하는 카카오 앱에서 송금할때 진동 피드백을 줬던게 생각이 나서 깃허브에 이름이 존재하지 않을 때 alert 창을 띄우면서 진동으로 피드백 주기를 구현해보았다. (간단하게) 절대 collectionView 구현하기 어려워서 찾아본게 아니다. async await 실패하고 에러처리도 실패한 코드라 바꿀점이 많은 코드지만 지나가면서 깨달은 점은 메인큐에 넣지 않아도 된다는 점? let hapticNotification = UINotificationFeedbackGenerator() @objc func didPressDoneButton(_ sender: UIButton) { guard let name = self.nam.. [두깃] 오류 고치는 날 (constraint, Realm migration) constraint 오류 화면상으로는 문제가 되지 않았는데 콘솔창에 발생한 오류 [LayoutConstraints] Unable to simultaneously satisfy constraints. 동시에 만족하지 않는 제약이 있다고 한다. "", "" 상당히 친절했다. 버튼의 높이는 28인데 스택뷰의 높이는 40이라고한다. -> 스택뷰의 alignment 를 .fill 이 아니라 .center 로 바꿔주어 해결하였다. Realm migration 유저 정보를 Singleton -> Realm 으로 변경하려는데 콘솔창에 프로퍼티를 변경했다고 마이그레이션이 필요하다고 떴다. Migration is required due to the following errors 마이그레이션이 정확히 뭔지 알아보고 적용하기.. 이전 1 ··· 3 4 5 6 7 8 9 ··· 26 다음