본문 바로가기

전체 글226

[SwiftUI] 채팅 기능 (타겟 뷰로 스크롤 이동하기, ScrollViewReader, ScrollTo, Anchor) ScrollViewReader를 이용하면 스크롤를 자동으로 할 수 있다. 뷰 화면 초점을 맞추거나, 채팅 내용 검색 등에 활용할 수 있겠음 다음 코드에서 ScrollViewReader로 ScrollView를 감싸주고, proxy를 이용해서 scrollTo~ 해주면 위와 같이 작동한다. import SwiftUI struct ContentView: View { private var dataArray: [String] = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] private let target: Int = 5 //f var body: some View { Sc.. 2023. 10. 12.
[SwiftUI] 채팅 기능 (UpScroll) 일단 서치먼저 해 보다가 SwuifUI로 채팅짜기는 블로그에 자료가 별로 없다는것을 알게되서 눈물난다 눈물나 여튼 업스크롤 하는방법 찾아보다가 아래와 같이 rotationEffect를 주면 업스크롤이 가능하다는것을 알게 됨 ! 원래는 이렇게 다운스크롤이 디폴튼데 아래와 같이 코드 짜주면 이렇게 업스크롤 가능! 벌써 다 짠 기분이다 ㅋ private var dataArray: [String] = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] var body: some View { ScrollView(.vertical){ LazyVStack{ ForEach(0.. 2023. 10. 12.
[SwiftUI] highPriorityGesture (NavigationLink 위 제스쳐 처리) 드래그로 필터 바꾸는 코드 짜고있었는데 List들이 NavigationLink로 이루어져 있어서 드래그 대신 링크로 이동하거나 드래드가 인식되지 않았음VStack{ ... } .gesture( DragGesture(minimumDistance: 2, coordinateSpace: .local) .onEnded { value in if ((selectedFilter == .group) && (value.translation.width > 0)) { withAnimation { selectedFilter = .personal } } else if ((selectedFilter == .personal) && (value.translation.width < 0)) { withAnimation { selected.. 2023. 10. 10.
[SwiftUI] Target No Device, 시뮬레이터 없음 (엑스코드 15ver 업데이트) 새 프로젝트를 zip 파일로 받았는데 시뮬레이터가 하나도 안뜸 ㅎ... 그래서 블로그 찾아보니 XCode닫기 -> Finder -> 우클릭해서 패키지 내용보기 -> xcuserdata가 빈 파일이 되도록 .xcuserdata 파일 모두 삭제 하면 된다고 함! 근데 난 해결이 안돼서 곰곰이 생각해보니 이번 15버전 업데이트되면서 업뎃한 팀원이랑 호환이 안됐음 ㅎ.. 결론은 업데이트 문제였따! 2023. 9. 27.
[SwiftUI] 채팅창 (요소를 뷰 끝에 고정하는법, safeAreaInset) 원래 항상 이런 입력창 뷰를 만들때 ZStack으로 덮어서 고정했었는데 아주 좋은 방법을 찾아냄!!!! VStack{ ... } .safeAreaInset(edge: .bottom) { ChatBar .background(Color(.systemBackground).ignoresSafeArea()) .shadow(radius: 0.5) } safeAreaInset의 파라메터들 edge : 뷰 위치 조정 .leading , . top, . bottom, .trailing 모두 가능 spacing : 뷰 사이 간격 조정, nil로 설정하면 기본 간격 alignment : 정렬 content : 뷰 정의 2023. 9. 26.
[SwiftUI] List Divider 없애기 List() { ... }.listSectionSeparator(.hidden) 2023. 9. 26.
[SwiftUI] Xcode Firebase 기본설정 https://firebase.google.com/docs/ios/swift-package-manager?hl=ko Swift Package Manager로 Firebase 설치 | Firebase 문서 Google I/O 2022에서 Firebase의 새로운 기능을 확인하세요. 자세히 알아보기 의견 보내기 Swift Package Manager로 Firebase 설치 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하 firebase.google.com 2023. 9. 25.
[SwiftUI] 뷰 모듈화 이제까지 뷰 모듈화 할때 계속 아래와 같이 뷰를 리턴받는 방식을 사용했음func mainView() -> some View { .... } https://da-ye.tistory.com/192 [SwiftUI] 함수로 버튼뷰 리턴받기 (some View 개념)https://da-ye.tistory.com/189 [SwiftUI] 버튼을 함수로 리턴하기 func buildButton(parameter : Parameter) -> Button버튼 함수의 형식 func buildButton() -> Button { return Button { } label: { Text("첫번째 버튼입니다.") } }이런식으da-ye.tistory.com 그런데 다음과 같이 연산 프로퍼티로 쓰는걸 발견import SwiftU.. 2023. 9. 24.
[C] 소켓통신 https://jhnyang.tistory.com/251 [소켓 프로그래밍 C언어] 기본적인 서버 프로그램 만들기 (리눅스, 유닉스 편) server 관련 함수 및 안녕하세요~! 오늘은 기본적인 TCP 서버 프로그램을 작성해볼게요. 소켓 프로그래밍으로 간단한 채팅 서버를 만들어볼 생각인데, 찬찬히 진행해보도록 합시다. 소켓 프로그래밍이란? 오늘날 모 jhnyang.tistory.com https://jhnyang.tistory.com/253 [소켓 프로그래밍 C언어] 기본적인 클라이언트 프로그램 만들기 (리눅스, 유닉스 편 client) 관련 안녕하세요! 저번 시간에는 기초적인 서버를 만들어서 제대로 동작하는지 테스트 하는 시간을 가졌었어요.ㅎㅎ 이제 서버가 있으니 오늘은 클라이언트를 만들어서 상호간 통.. 2023. 9. 11.