Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleSwift
Code Block
languageswift
class CustomAdViewHolder: BABAdViewHolder {
  private var adView = BABNativeAdView()
  private var mediaView = BABMediaView()
  private var titleLabel = UILabel()
  ...

  required init?(coder: NSCoder) {
    super.init(coder: coder)
    setUpView()
  }
  
  override init(frame: CGRect) {
    super.init(frame: frame)
    setUpView()
  }
  
  func setUpView() {
    addSubview(self.adView)
    adView.addSubview(self.mediaView)
    adView.addSubview(self.titleLabel)
    ...
    
    // LayoutConstraint 설정
    ...
  }

  // Bind view with ad
  override func renderAd(_ ad: BABAd) {
 
    super.renderAd(ad)
    
    self.titleLabel.text = ad.creative.title
    self.descriptionLabel.text     // description 필드가 objc 객체에 기본으로 있어서 body로 컨버팅 하여 사용
      self.descriptionLabel.text = ad.creative.body
    
    if let urlString = ad.creative.bodyiconUrl   {
      self.iconImageView.sd_setImage(with: URL(string: ad.creative.iconUrlurlString))
    }
    //
reward  없다면 포인트 미표시self.adView.ad = ad
    if (ad.reward > 0) {
    self.adView.mediaView = self.mediaView
    self.adView.clickableViews = [self.ctaButton, self.iconImageView]
    
    updateCtaButton(ad: ad)
  }
  
  func updateCtaButton(ad: BABAd) {
    let callToAction = ad.creative.callToAction ?? "디폴트 스트링"
    let reward = ad.reward
    let totalReward = ad.getTotalReward()
    let isParticipated = ad.isParticipated()
    let isClicked = ad.isClicked()
    let isActionType = ad.isActionType()
    if (isClicked && isActionType && !isParticipated) {
      rewardIcon.image = nil
      ctaLabel.text = "참여 확인 중"
    } else {
     self.ctaLabel.text =if "\(Int(ad.reward))P \(ad.creative.callToAction ?? "디폴트 스트링")"
(totalReward > 0 && isParticipated) {
         self.rewardIcon.image = UIImage(named: "pointic_icocheck")
        ctaLabel.text = "참여 완료"
      } else {
  if (reward > 0) {
        selfrewardIcon.ctaLabel.textimage = ad.creative.callToAction
UIImage(named: "ic_coin")
         self.rewardIcon.image = nilctaLabel.text = "\(Int(ad.reward))P \(callToAction)"
      } else {
        selfrewardIcon.adView.adimage = nil
 ad       selfctaLabel.adView.mediaViewtext = callToAction
self.mediaView      }
 self.adView.clickableViews = [self.ctaButton, self.iconImageView] }
  }
}
Code Block
languageswift
let config = BABFeedConfig(unitId: "YOUR_FEED_UNIT_ID")
config.adViewHolderClass = CustomAdViewHolder.self

...