【问题标题】:WatchOS2 - Is there any way to scroll a label horizontally?WatchOS2 - 有没有办法水平滚动标签?
【发布时间】:2015-10-23 14:43:57
【问题描述】:

我想知道(希望)有一种方法可以水平滚动 WKInterfaceLabel?

【问题讨论】:

    标签: watchkit wkinterfacelabel


    【解决方案1】:

    不,那是不可能的。当标签比屏幕宽时,它就会被截断。将其放在水平的WKInterfaceGroup 中也无济于事。

    Apple Watch 上唯一可以远程表示水平滚动的是具有基于页面的界面。在那里你可以在不同的WKInterfaceControllers之间水平滑动。

    如果文本对于您的 WKInterfaceLabel 来说太长并且您不希望有多行,您可以自动滚动文本:

    class InterfaceController: WKInterfaceController {
    
        @IBOutlet var label: WKInterfaceLabel!
    
        let fullText = "This is a long text that should scroll."
        var scrolledText: String?
        var timer: NSTimer?
    
        override func awakeWithContext(context: AnyObject?) {
            super.awakeWithContext(context)
    
            scrolledText = fullText
            timer = NSTimer.scheduledTimerWithTimeInterval(0.2, target: self, selector: Selector("timerDidFire:"), userInfo: nil, repeats: true)
            label.setText(scrolledText)
        }
    
        override func didDeactivate() {
            timer?.invalidate()
        }
    
        func timerDidFire(timer: NSTimer) {
            if scrolledText!.characters.count > 1 {
                scrolledText!.removeAtIndex(scrolledText!.startIndex)
            } else {
                scrolledText = fullText
            }
            label.setText(scrolledText)
    
        }
    }
    

    虽然这对我来说有点像 90 年代 ;-)

    【讨论】:

    • 太棒了。谢谢。 (注意:我已经 90 多岁了)我会检查性能命中..
    • 是否有 OBjC 等价物?谢谢
    • 很酷的一个......但这当然只是一种解决方法......我不会寻找其他方法来做同样的事情。
    猜你喜欢
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多