분류 전체보기
-
아주 짧은 치앙마이 4박 5일 여행 후기후기 2023. 2. 22. 11:12
오전 7시 치앙마이에 도착함 그랩타고 호텔로 오니 너무 일찍이라 체크인도 안되고 해서 근처에 님만쪽 걸어다님 오전 9시에 식당 여는데가 딱 하나 있어서 가서 무삥 하나 먹어봄 맛있었음 근처에 헬스장 하나 있길래 다녀오고 호텔 돌아가니 아직도 체크인 못한다 해서 점심 먹으로 카오쏘이 님만을감 맛있음 그런데 다른곳에 비해 조금 비싸고 앞옆뒤 테이블 한국인들이 많았음 호텔은 오키드 호텔이었는데 1박에 4만원이었나? 가성비 좋았음 침실이 엄청 컸음 나중에 방콕가서 작은 방쓰려니 적응 안됐었음 ㅠ 다 좋은데 문제는 님만을 걸어서 10분정도 가야해서 주변에 먹을게 많이 없었음 저녁에 오픈채팅 방 통해서 도이수텝 가는 동행 구해서 같이 치앙마이 대학교 근처에서 썽태우 타서 도이수텝 같이감 같이 탄 아줌마들 있었는데 ..
-
아주 짧은 라오스 방비엥 3박 4일 여행 후기후기 2023. 2. 22. 10:31
밤11시30분 넘어서 비엔티안 공항 도착함 공항에 가면 택시 서비스가 있음 거기가서 7달러 내고 택시타면 호텔까지 데려다줌 10달러 내면 3달러 잘 거슬러줌 밤에 도착하면 아무것도 안열음 그냥 잠 다음날 12시에 방비엥가는 벤을 예약함 블루투어에서 예약함 12시까지 할거없어서 숙소앞 은행에서 환전 하고 도가니 국수 하나먹고 다시 벤 대기. 이때 한 환전이 제일 좋았음 환전은 비엔티안에서 해야함 12시에 비엔티안에서 벤 출발하고 2시쯤 방비엥 도착함 이날 나나 게하에서 하루 묵었는데 서양인99동양인1 비율 양형들이랑 나중에 친해져야지 하고있는데 급 한국인 동행 구해져서 같이 안놀게 됨 ㅎㅎ 그냥 짐만두고 주변 밥집가서 밥먹고 블루투어가서 액티비티 예약함 집라인 카야킹 두개해서 26만낍 늦은오후라 딱히 할게..
-
[Swift] 직접 UITableView를 구현하기개발/Swift 2023. 1. 12. 17:04
스크롤 구현 방식 스크롤을 구현하기 위해 UIstackView를 통해 UI들을 집어넣고 UIPanGesture를 통해 터치이벤트를 받아 스크롤을 구현 했습니다. for i in 1.. UIImageView? { guard let image = UIImage(named: "image\\(index)") else {return nil} let imageView = UIImageView(image: image) imageView.translatesAutoresizingMaskIntoConstraints = false imageView.heightAnchor.constraint(equalToConstant: cellHeight).isActive = true return imageView } init에서 초기 1..
-
[Swift] 다양한 데이터 타입 동적으로 Decoding 하기개발/Swift 2023. 1. 9. 17:55
위 데이터 처럼 하나의 리스트에 다른 타입의 데이터를 받아오는 경우가 있다. 이때 해당 데이터를 디코딩할때 문제를 겪게된다. 해결 할수 있는 방법은 위와 같이 모든 프로퍼티들을 옵셔널하게 주는 방법이 있다. 그러면 디코딩 한 결과는 옵셔널 하며 데이터 혹은 nil 이 들어갈것이다. 이런 경우 문제점은 프로퍼티가 모두 옵셔널 하기 때문에 언래핑을 꼭 해줘야 한다는것이다. 더 좋은 방식은 해당 타입을 나누어 다른 타입으로 구현해내는 것이다. 어느 방식으로든 분기를 태워서 A타입, B타입으로 나누어 필요한 프로퍼티만 설정해주는것이다. enum CellItem: Decodable , Hashable{ case company(Company) case horizontal(Horizontal) case none en..
-
외부 영역 터치시 키보드 사라지게 하는방법 in TableView개발/Swift 2022. 12. 5. 14:22
키보드를 입력중에 다른 영역을 터치하면 키보드가 사라지기를 원할수 있다. 이때 가장 쉬운 방법으로 이렇게 구현한다 //VC private func setDismissKeyboardEvent() { let gesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard)) self.view.addGestureRecognizer(gesture) } @objc private func dismissKeyboard() { self.view.endEditing(true) } Viewcontroller의 뷰에 제스처를 부여해서 endEditing을 호출하면 키보드가 알아서 껒여준다. 그런데 여기서 문제점이 있다. 만약 view 안에 테이..
-
Compositional Layout + Diffable DataSource - 2 헤더 추가하기개발/Swift 2022. 11. 27. 15:35
헤더 추가하기 우선 새로운 타입 sqaure carousel 섹션을 추가했다. 여기서는 새로운 타입의 아이템을 넣어줬다. enum Item: Hashable { case banner(HomeItem) case normalCarousel(HomeItem) case squareCarousel(RestaurantItem) } struct RestaurantItem: Hashable { let name: String let reviewPoint: Float let reviewCount: Int let imageUrl: String } 이러면 데이터소스에 넣어줄때 RestaurantItem 타입을 넣어주고 cell 그릴때 RestaurantItem 타입의 데이터를 받아 사용할수 있다. //스냅샷 부분 snapsh..
-
Compositional Layout + Diffable DataSource - 1 (배너타입, 작은 리스트)카테고리 없음 2022. 11. 25. 18:14
쿠팡이츠 메인 피드 화면처럼 콜렉션뷰를 구현해보려 한다. 맨위에 배너가 있고 그 아래 작은 리스트, 그 아래 사각형의 리스트가있다. 그리고 특이점은 모든 형태가 다 다른 타입의 데이터를 가지고 있다 배너 - 배너 작은 리스트 - 음식종류(category) 사각형 리스트 - 식당이름(restaurant) Section으로 섹션 타입을 구분하지 않고 Item 으로 구분하기로 했다. struct Section: Hashable { let id: String } enum Item: Hashable { case banner(HomeItem) case normalCarousel(HomeItem) case circleCarousel(HomeItem) } struct HomeItem: Hashable { var tex..
-
[Swift] Compositional Layout - DiffableDataSource 와 함께 사용개발/Swift 2022. 11. 23. 17:00
Modern Collection View 와 MVVM 패턴 가이드 [iOS] Swift Modern Collection View & MVVM 패턴 가이드 강의 - 인프런 MVVM 패턴과 Modern Collection View를 사용해 네트워킹을 구현하고, 다양하고 동적인 Collection View를 자유자재로 다룰 수 있게 됩니다., Swift iOS UI, 제대로 다루는 핵심 기술! 📲 iOS Swift 레이아웃 구현을 www.inflearn.com 기존 datasource 구조에서 data controller 와 UI 가 상호작용하면 서 collectionview가 구성되는데 시간이 지남에따라 외부적인 변동으로 인해 controller가 가진 “Truth”와 UI가 가진 “Truth”가 맞지 않게..