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