[swift] 12.MarqueeLabel을 이용한 실시간 뉴스 스크롤 구현하기

실시간 뉴스 스크롤을 구현하고 싶다면 MarqueeLabel 라이브러리를 사용할 수 있습니다. MarqueeLabel은 레이블을 자동으로 스크롤하는 기능을 제공하여, 텍스트가 전체적으로 표시되지 않을 경우에도 사용자가 흐르는 텍스트를 확인할 수 있게 해줍니다.

1. MarqueeLabel 라이브러리 설치하기

먼저, MarqueeLabel 라이브러리를 프로젝트에 설치해야 합니다. Cocoapods를 사용하는 경우, Podfile에 아래 코드를 추가하고 pod install 명령을 실행하세요.

pod 'MarqueeLabel/Swift'

Cocoapods를 사용하지 않는 경우, 해당 라이브러리의 최신 버전을 Github 저장소에서 다운로드 받아 프로젝트에 직접 추가하세요.

2. MarqueeLabel 사용하기

MarqueeLabel을 사용하기 위해 먼저 UILabelMarqueeLabel로 변경해야 합니다. UITableViewController의 셀에 MarqueeLabel을 추가하려면 다음과 같이 구현할 수 있습니다.

import UIKit
import MarqueeLabel

class NewsTableViewCell: UITableViewCell {
    
    @IBOutlet weak var titleLabel: MarqueeLabel!
    
    func configure(title: String) {
        titleLabel.text = title
        titleLabel.type = .continuous
        titleLabel.speed = .speedRate(rate: 40)
        titleLabel.animationCurve = .easeInOut
        titleLabel.fadeLength = 10.0
        titleLabel.trailingBuffer = 20.0
    }
}

3. MarqueeLabel 속성 설정하기

MarqueeLabel에는 다양한 속성을 설정할 수 있습니다. 몇 가지 중요한 속성을 살펴보겠습니다.

4. 뉴스 데이터 표시하기

실시간 뉴스 데이터를 표시하기 위해, 별도의 데이터 소스를 사용할 수 있습니다. 예를 들어 UITableViewController에서 NewsTableViewCell을 사용하여 뉴스 셀을 표시하는 경우:

import UIKit

class NewsTableViewController: UITableViewController {
    
    var newsData: [String] = []

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return newsData.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "NewsTableViewCell", for: indexPath) as! NewsTableViewCell
        cell.configure(title: newsData[indexPath.row])
        return cell
    }
}

위와 같이 데이터를 추가하여 테이블 뷰를 통해 실시간 뉴스 스크롤을 구현할 수 있습니다.

MarqueeLabel을 사용하면 손쉽게 실시간 뉴스 스크롤을 구현할 수 있습니다. 또한 MarqueeLabel의 다양한 속성을 활용하여 스크롤 애니메이션을 원하는 대로 설정할 수 있습니다.

더 자세한 내용은 MarqueeLabel의 공식 문서를 참조하세요.