ios - 如何使用 Swift 滚动 TextView 时重复动画?

标签 ios swift uiscrollview uitextview

Swift 4:我试图在点击按钮时滚动 textView。这是我的代码:

import UIKit



class ViewController: UIViewController {

    @IBOutlet weak var txtViewStory: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()
    }


    var scrollingTimer = Timer()

    @IBAction func scroll(_ sender: UIButton) {
        scrollingTimer = Timer.scheduledTimer(timeInterval: 0.001, target: self, selector: #selector(ViewController.startScrolling), userInfo: nil, repeats: true)

        scrollingTimer.fire()

    }

    @objc func startScrolling(){
        var currentOffset = txtViewStory.contentOffset
        currentOffset = CGPoint(x: currentOffset.x, y: currentOffset.y + 1)
        txtViewStory.setContentOffset(currentOffset, animated: false)
    }

}

它的样子是这样的:

Gif1

当 TextView 滚动到底部时动画将停止。但我希望它一次又一次地重复滚动。有什么办法让它发挥作用吗?如有任何建议,我们将不胜感激。

最佳答案

非常肮脏的代码,但应该可以工作;>

@IBAction func scroll(_ sender: UIButton) {
    scrollingTimer.invaldiate()
    scrollingTimer = nil
    txtViewStory.setContentOffset(CGPoint(x: currentOffset.x, y: 0), animated: false)

    scrollingTimer = Timer.scheduledTimer(timeInterval: 0.001, target: self, selector: #selector(ViewController.startScrolling), userInfo: nil, repeats: true)
    scrollingTimer.fire()

}

关于ios - 如何使用 Swift 滚动 TextView 时重复动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46977326/

相关文章:

ios - 如何在Xcode中设计大 View

ios - 显示来自 App delegate 的错误 -- Google Signin

ios - 约束并没有扩大我对方向变化的看法

iphone - 获取动画 ScrollView 的当前位置

ios - 将图像上传到 RESTful API

ios - React-Native 警告 : unable to load source map

ios - 如何在 Swift 中使用反射设置成员变量值?

ios - 如何正确禁用/启用推送通知

swift - 在 [String:String] 中转换 [(key : String, value: String)]

ios - 淡化 UITableView 的边缘