如何在swift上标记标签文本?

如何在swift上标记标签文本?,swift,marquee,Swift,Marquee,我想在Swift中创建一个字幕标签。我尝试了一些代码,但无法使其工作 我也可以用动画来做这件事,但我在重复它时遇到了问题 我也试过了 任何帮助都将不胜感激。我不知道为什么我得到了2- 我尝试了很多东西。这已经不重要了 我在5分钟前发现了这个,这就是我使用动画而不是字幕的答案。但在iOS上,字幕是一个棘手的问题 我使用了这个代码,它的工作!我也希望帮助别人 在ViewdidLoad上: if let aLabel = self.txtAmarFull { aLabel.pus

我想在Swift中创建一个字幕标签。我尝试了一些代码,但无法使其工作

我也可以用动画来做这件事,但我在重复它时遇到了问题

我也试过了


任何帮助都将不胜感激。

我不知道为什么我得到了2-

我尝试了很多东西。这已经不重要了

我在5分钟前发现了这个,这就是我使用动画而不是字幕的答案。但在iOS上,字幕是一个棘手的问题

我使用了这个代码,它的工作!我也希望帮助别人

在ViewdidLoad上:

  if let aLabel = self.txtAmarFull {
        aLabel.pushTransition(3)

    }
关于正文:

extension UIView {
func pushTransition(duration:CFTimeInterval) {
    let animation:CATransition = CATransition()
    animation.timingFunction = CAMediaTimingFunction(name:
        kCAMediaTimingFunctionEaseInEaseOut)
    animation.type = kCATransitionMoveIn
    animation.subtype = kCATransitionFromLeft
    animation.duration = duration
    animation.repeatCount = 99
    self.layer.addAnimation(animation, forKey: kCATransitionPush)
}

我的标签名是:txtAmarfull

我创建了更好的解决方案

我结合了两种不同的方法

在这里,有了这段swift代码,你就可以用最终的重复和非常简单的方式制作字幕了!只需将标签放在显示视图的一侧

 UIView.animateWithDuration(8.0, delay:0, options: [.Repeat], animations: {   
        self.YOURLABELNAME.frame = CGRectMake(self.YOURLABELNAME.frame.origin.x - 500, self.YOURLABELNAME.frame.origin.y - 0, self.YOURLABELNAME.frame.size.width, self.YOURLABELNAME.frame.size.height)
        }, completion: nil)

使用一个可以屏蔽其内容的标签非常简单。 只需在项目中添加pod

Swift:

pod 'MarqueeLabel/Swift'
然后选择要在其上执行选框的标签,并将自定义类MarqueeLabel添加到Identity Inspector中

就这样

这是在标签中添加字幕的最简单方法。添加自定义类MarqueeLabel后,如果希望标签内容的最后一个字符和第一个字符之间有一定的间距,则:

步骤1:选择标签

步骤2:转到属性检查器,然后将FadelLength属性值增加到您想要的值。将值10应用于它就足够了

如果您希望自定义更多内容,请将自定义类MarqueeLabel添加到标签中,然后在代码中使用该标签的出口,并以您想要的方式对其进行自定义

代码中该标签的出口应如下所示:

@IBOutlet var YOURLABELNAME: MarqueeLabel!
如果不是这样,则首先将自定义类添加到标签中,然后在代码文件中获取其出口。

检查此代码

var检查=true
var速度=2
var stopWidth=200.0
重写func viewDidLoad(){
label.center.x=view.center.x//将其放置在视图的中心x处。
label.center.x-=view.bounds.width//将其放置在视图左侧,宽度为
Timer.scheduledTimer(时间间隔:时间间隔(速度),
目标:自我,
选择器:#选择器(selectCityViewController.sliderAnimationTime),
userInfo:nil,
重复:正确)
}
@objc func sliderAnimationTime(){
//当计时器触发事件时,应执行什么操作
UIView.animate(持续时间:时间间隔(速度),延迟:0,选项:[.curveEaseOut],动画:{
如果自我检查{
self.check=false
self.label.center.x-=self.view.bounds.width-CGFloat(self.stopWidth)
self.view.layoutifneed()
}否则{
self.check=true
self.label.center.x+=self.view.bounds.width-CGFloat(self.stopWidth)
self.view.layoutifneed()
}
},完成日期:无)
}

请分享您的尝试(特别是)和想要的结果。您以前尝试过“MarqueeLabel”播客吗?太容易使用了。