Swiftpack.co - ksc89kim/VideoReels as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by ksc89kim.
ksc89kim/VideoReels 1.0.3
릴스 영상
⭐️ 0
🕓 2 years ago
iOS
.package(url: "https://github.com/ksc89kim/VideoReels.git", from: "1.0.3")

VideoReels


릴스 UI 생성

private let reelsView: VideoReelsView = {
    let view = VideoReelsView.view()
    return view
}()

릴스 ReloadAll


self.reelsView.reloadAll(items: [
    VideoReelsBaseItem(
    idx: "\(idx)",
    url: URL(string: "비디오 URL"),
    isMuted: false
    )
])
  • 전반적인 리로드를 진행합니다.

릴스 Reload


self.reelsView.reload(items: [
    VideoReelsBaseItem(
    idx: "\(idx)",
    url: URL(string: "비디오 URL"),
    isMuted: false
    )
])
  • 부분적으로 리로드를 진행합니다.
  • 기존 아이템 idx를 비교하여, 동영상을 교체합니다.
  • 셀을 리로드하는 것이기에, 동영상이 멈추지 않기를 원한다면, Event를 사용해주세요.

릴스 Delete


var idxs = Set<String>()
idxs.insert("2")
self.reelsView.delete(idxs: idxs)
  • idx에 해당하는 동영상을 삭제합니다.

릴스 Insert


 let items: [VideoReelsBaseItem] = [
    .init(
    idx: "11",
    url: URL(string: "비디오 URL"),
    isMuted: false
    ),
    .init(
    idx: "12",
    url: URL(string: "비디오 URL"),
    isMuted: false
    )
]
self.reelsView.insert(items: items)
  • 동영상을 추가합니다.

릴스 Move


self.reelsView.moveToPage(3, animated: true)
  • Index에 해당하는 동영상으로 이동합니다.

릴스 커스텀 하기



 self.reelsView.register(ReelsCell.self, itemType: ReelsItem.self)

struct ReelsItem: VideoReelsItem {
  var idx: String
  var url: URL?
  var isMuted: Bool
  var name: String
}

final class ReelsCell: VideoReelsCollectionViewCell {

  // MARK: - UI Components
  private let nameLabel: UILabel = {
    let label = UILabel()
    label.textColor = .white
    return label
  }()


  // MARK: - Override
  override func addSubViews() {
    super.addSubViews()

    self.contentView.addSubview(self.nameLabel)
  }

  override func makeConstraints() {
    super.makeConstraints()

    self.nameLabel.translatesAutoresizingMaskIntoConstraints = false
    self.nameLabel.topAnchor.constraint(equalTo: self.contentView.topAnchor, constant: 15).isActive = true
    self.nameLabel.leftAnchor.constraint(equalTo: self.contentView.leftAnchor, constant: 15).isActive = true
  }

  override func configure(event: VideoReelsEvent) {
    super.configure(event: event)
    print("## event \(event)")
  }

  override func configure(item: VideoReelsItem) {
    super.configure(item: item)
    print("## item \(item)")

    if let reelsItem = item as? ReelsItem {
      self.nameLabel.text = reelsItem.name
    }
  }
}

GitHub

link
Stars: 0
Last commit: 2 years ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Release Notes

1.0.3
2 years ago

우선순위 로직 수정

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics