목록iOS (11)
찹모찌의 기록일지

Layover 프로젝트를 진행하던 도중 재생 화면의 프로필 이미지와 위치 정보가 뒤늦게 나타나는 경우가 있어 이를 개선하고자 Prefetch를 적용시켜보았다. UIKit에서 CollectionView나 TableView는 DataSourcePrefetching을 이용해 Prefetching을 지원한다. https://developer.apple.com/documentation/uikit/uicollectionviewdatasourceprefetching/prefetching_collection_view_data Prefetching collection view data | Apple Developer Documentation Load data for collection view cells before ..

영상을 재생시킬 때 어떤 문제가 발생할 수 있을까? 위의 gif처럼 영상(AVPlayer)를 UICollectionView의 각 cell에 담아 영상 시청 기능을 구현했다. 그러나 프로젝트를 진행하면서 영상을 시청하다 뒤로 나가거나, 아니면 계속 스크롤하며 다음 cell의 영상을 재생했을 때 기존에 시청했던 영상이 재생되는 문제가 발생했다. 결국 ViewController의 deinit이 호출되지 않는다는 점을 확인하고, Memory graph에서 Observer가 해제되지 않고 계속 동작하는 것을 확인하고 문제를 해결했다. 이처럼 AVPlayerLayer를 커스텀해서 사용할 때, UISlider를 이용하여 재생바를 만들어 두거나 영상을 반복 재생시키기 위해 Notification Center를 이용하거..

숏폼 플랫폼 Layover를 개발하면서, iOS앱 내에서 영상을 재생할 일이 생겼다. iOS에서 영상을 재생하려면 어떻게 해야할까? 1. 영상 재생하기 1) AVPlayerViewController 위와 같이 AVKit에서 제공하는 AVPlayerViewController를 쓰면 쉽게 재생을 할 수 있다. 그러나 AVPlayerViewController는 커스텀이 어렵기 때문에 AVPlayerLayer를 사용해 커스텀 재생 화면을 만들 수 있다. 2) AVPlayerLayer // 먼저 AVPlayerLayer가 있는 VideoView class를 만들어준다. // AVPlayerLayer는 VideoView에 가득차게 만들어 질 것이다. final class VideoView: UIView { priv..