2017-01-29 5 views
0

私はスイフト3のマーキーラベルを使用しています。唯一の問題は、次の点に問題があります。Swift 3マーキーラベル通知の繰り返しまたはホームポジションの前に

ラベルがホームポジションに戻ったときを見つけようとしています。テキストが家に戻ってきたら、それはスクリーンから外れています、これは私がdataStringを更新したい時です。

スクロール中に文字列を更新しようとすると、自動的に停止してリセットされます。また、私はタイマーやそのようなものを使用することはできませんので、dataStringの長さは可変です。

私はこれは私がセットアップに使用している私のコードで、私のラベルを開始Marquee Labelここにすべてのものを読んで

を持っていた:

feedLabel.text = dataString 
    feedLabel.type = .continuous 
    feedLabel.speed = .rate(70) 
    feedLabel.fadeLength = 80.0 
    feedLabel.leadingBuffer = 1300.0 
    feedLabel.trailingBuffer = 1300.0 
    feedLabel.labelWillBeginScroll() 

私dataStringは数秒ごとに更新しますが、私はしたいです私のラベルは、それが繰り返される直前に更新されます。

これは私の脳に穴を吹き込んでいます。どんな提案も大歓迎です。

答えて

1

あなたはMarqueeLabelから新しい継承したクラスを作成し、labelReturnedToHome関数をオーバーライドすることができます

class CustomMarqueLabel : MarqueeLabel { 
    open var returned : ((Bool)->Void)? 
    override func labelReturnedToHome(_ finished: Bool) { 
     super.labelReturnedToHome(finished) 
     if returned != nil { 
      returned!(finished) 
     } 
    } 
} 

は、このように使用:

let lengthyLabel = CustomMarqueLabel(frame: CGRect(x: 20, y: 40, width: 200, height: 20), duration: 0.5, fadeLength: 10.0) 
lengthyLabel.returned = {completed in 
      //label returned to begining 
     } 
+0

グレート!ありがとうsoooo @Mücahit。これで終わりました。 –

関連する問題