使用弹簧动画动画化scrollRangeToVisible

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用弹簧动画动画化scrollRangeToVisible相关的知识,希望对你有一定的参考价值。

我正在尝试动画滚动。在下面的代码中,detailText是一个UITextView。不知道为什么UIView.animate功能不起作用。

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    UIView.animate(withDuration: 1.0, delay: 0.0,
                               usingSpringWithDamping: 0.6,
                               initialSpringVelocity: 6.0,
                               options: [.curveEaseIn], animations: {

  let rangeOfTag = (self.detailText.text as NSString).range(of: "satisfactorily")

  self.detailText.scrollRangeToVisible(rangeOfTag)                                                                                          

    }, completion: nil)

我尝试了上述内容:

override func viewDidLayoutSubviews()

没有成功创造弹簧。有什么想法吗?

答案

您可以使用此片段来获得振动。

   UIView.animate(withDuration: 3.0, delay: 0.0,
                   usingSpringWithDamping: 0.1,
                   initialSpringVelocity: 0.9,
                   options: [.curveEaseIn, .overrideInheritedCurve], animations: {

                   let rangeOfTag = (self.detailText.text as NSString)
                    .range(of: "satisfactorily")
                    let glyRange =    self.detailText.layoutManager.glyphRange(forCharacterRange: rangeOfTag, actualCharacterRange: nil)
                    let rect =     self.detailText.layoutManager.lineFragmentRect(forGlyphAt: NSMaxRange(glyRange), effectiveRange: nil)
                self.detailText.scrollRectToVisible(rect, animated: false)



    }, completion: nil)

以上是关于使用弹簧动画动画化scrollRangeToVisible的主要内容,如果未能解决你的问题,请参考以下文章

弹簧动画效果(系统自带方法)

具有弹簧效果的旋转动画

有没有办法不对子对象应用弹簧动画?

iOS 弹簧动画详解CASpringAnimation

使用SpringAnimation实现弹簧联动

UITableView Cell 弹簧动画效果