반응형

iOS/Swift 어플 따라하기 58

[Swift]SearchBar 키보드 내려주기, ViewController와 해야 할 일

오늘은 SearchBar에서 발생하는 일들을 먼저 제어해 주도록 하겠습니다 SearchBar에서 검색한 결과는 ViewController에게 결과를 위임하여 수행한 일들을 표시할 수 있습니다. ViewController와 Delgate설정을 해줘야 합니다. = UISearchBarDelegate ViewController와 SearchBar, CollectionView를 연결하는 과정은 생략하도록 하고 오늘의 목표 1. 키보드가 올라와서 검색 눌렀을 때 키보드 내려가는 메서드 만들어주기 2. search버튼 눌렀을 때 ViewController에게 알려주고 키보드 내려주기 (1.을 이용하여) 3. 검색어가 없다면 값을 반환하지 않기 오늘의 목표 영상으로 먼저 감상하시죠 영상으로 먼저 감상하시죠. 1. ..

[Swift] 뮤직 앱 Seeking

1. TimeOberver 2. 시간 정보 업데이트 3. 슬라이더 정보 업데이트 4. seeking 1. TimeObserver updatePlayButton() updateTime(time: CMTime.zero) timeObserver = simplePlayer.addPeriodicTimeObserver(forInterval: CMTime(seconds: 1, preferredTimescale: 10), queue: DispatchQueue.main, using: { time in self.updateTime(time: time) }) //곡에 해당하는 현재 시간을 받아서 업데이트 시키기 //CMTime(seconds: 1, preferredTimescale: 10) //= 0.1초 시간(기준시간)과..

[Swift] 뮤직 플레이어, 홈화면에서 플레이어 화면 띄우기

홈화면에서 곡을 클릭하면 곡 띄우기 할 일 1. 플레이어뷰컨트롤러 스토리보드 가져오기 2. 뷰컨트롤러를 찾아서 PlayerVC에 PlayerViewController로 캐스팅 3. 프리젠트 (헤더뷰가 있다면 헤더뷰에도 똑같이 이행) 4. 플레이어뷰 곡정보 표시 및 재생 1. 플레이어 뷰 컨트롤러 스토리 보드 가져오기 let playerStoryboard = UIStoryboard.init(name: "Player", bundle: nil) // 스토리보드 이름 Player에서 UIStoryboard를 가져옵니다. 2. SimplePlayer를 스토리 보드 guard let playerVC = playerStoryboard.instantiateViewController(withIdentifier: "Pla..

[Swift] 뮤직 플레이어 코드 / 싱글 톤 객체 만들기

싱글톤 객체 만들기 싱글 톤 객체는 플레이어를 매번 생성하는 것이 아니고 하나만 만들고 객체로 불러서 사용 하는 것입니다. static let shared = SimplePlayer() let simplePlayer = SimplePlayer.shared //돌려쓰는 플레이어를 가져와서 사용하겠다는 의미입니다. 여기서의 SimplePlayer()는 Class를 만들어 플레이어 현재 진행 시간, 총 길이, 곡정보의 정보를 담고 있습니다. SimplePlayer에 현재 시간, 곡의 총 길이, 곡 정보 넣기 ※ private let player = AVPlayer() 곡의 현재 진행 시간 불러오기 var currentTime: Double { return player.currentItem?.currentTim..

[Swift] MVVM Design Pattern

MVVM패턴의 목표 1. 기술 부채를 최소화 2. 재사용 및 지속 가능한 코드 만들기 MVVM이전에 사용 하던 MVC에 대해 간략하게 이해해 보겠습니다. MVC패턴이란? Model - View - Controller Model = 데이터(Struct) View = UI요소(UIVIEW) Controller = 중계자 (UIViewController) Model 스스로 데이터 변경 -> 컨트롤러에 변경알림 컨트롤러 -> 바뀔 필요가 있다-> 모델 업데이트시킴 컨트롤러는 -> 뷰에 이렇게 보여줘야겠다 -> 직접 의사소통 view는 사용자와 인터랙션하는 것을 컨트롤러와 소통 뷰컨이 너무 많은 일을 해서 너무 massive해짐. MVVM이란? Model - View -ViewModel의 약자 현재 제일 널리 쓰..

[Swift] List 형태 어플1-3 /Segueway로 연결된 ViewController간 데이터 넘기기

 segueway로 연결 된 ViewController간 데이터 넘기기 과정 1-1. ViewController에서 클릭이 됐을 때 segway를 수행하는데 1-2 준비 할 때 데이터를 미리 넘겨주고 싶다. 1-3 데이터의 대한 힌트를 호출 시점에 넣어준다. 2-1 segueway 수행 직전에 준비하는 단계가 있다. 2-2 준비한 데이터와, 데이터에 대한 힌트 작성 2-3 힌트를 가지고 몇 번째 인지 데이터에서 해당하는 index를 가져와서 3. DetailViewcontroll에 꽂는다. => 준비완료 4. 데이터를 가지고 segueway를 타고 5. viewDidLoad시점에는 메모리만 올라오고 뜨지는 않은 상태 6. 뜨기 직전에 UIcomponent를 다 업데이트(updateUI)시킨다. 단계별로..

[Swift] List 형태의 나열 어플 1-2 -> CustomCell

CustomCell이란? UIViewController에서 마음대로 셀형식을 추가하는 기법을 말합니다. StoryBoard에 그리고 class를 ListCell로 설정한 뒤 각각을 할당해 줍니다. ※ 여기서 버그로 ListCell을 받지 못하고 있는 경우가 있는데 그럴 경우 드래그로 직접 끌어주셔야 연결 됩니다. List에 나타날 nameList와 bountyList를 할당 이후에 시뮬레이터를 돌려보면 chassi 1302938만 Listcount만큼 나오는데 아직 namelist와 bountylist 값이 할당이 안됐기 때문입니다. 캐스팅 이후에 값을 할당하고 index값으로 불러오겠습니다. UITableViewCell에 할당 된 값을 이전에 할당한 ListCell로 캐스팅 하기 이전에 셀을 띄우는 ..

[Swift] List 형태의 나열 어플 1-1

UITableView는 cell을 recycle해서 보여줍니다. Why? 보여주는 list는 20개인데 80개를 다 띄워놓을 필요 없기때문입니다. 컴퓨터 입장에서도 효율적인 작업 테이블 뷰 셀 몇 개? (필수) -> UITableViewDataSource, 테이블 뷰 어떻게 보여줄까?(필수) -> UITableViewDataSource, 테이블 뷰 클릭하면 어떻게할까?(선택) ->UITableviewDelegate Protocol 어떤 서비스를이용하기 위해 해야할 일들 TableView Protocol은 여기서는 테이블 뷰 서비스를 쓰기 위해 해야 할 일 1. 먼저 UITableViewDataSource에 해당하는 프로토콜들을 이행해 보겠습니다. UITableViewDataSource 1. func ta..

반응형