swift 上的标签文本如何跑马灯?
how Marquee text of label on swift?
我想在 Swift 中创建选取框标签。我尝试了一些代码,但无法正常工作。
我也可以用动画做到这一点,但我无法重复它。
我也试过
任何帮助将不胜感激。
我不知道为什么我得到 2 - ?!????
我尝试了很多东西。那已经不重要了...
我在 5 分钟前发现了这个,这就是我使用动画而不是选取框的答案。但是 iOS 选框是个棘手的问题!
here is the link that solved my repeating animation problem
我使用了这个代码并且它有效!也想帮助别人。
在 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 中的这段代码,您可以使用终极重复进行 Marquee,而且非常简单!只需将您的标签放在显示视图的一侧。
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)
使用一个可以Marquee up 其内容的标签非常简单。
只需在您的项目中添加 MarqueeLabel 个 pod。
Swift:
pod 'MarqueeLabel/Swift'
然后 select 您希望对其执行选取框的标签,并在身份检查器中向其添加自定义 Class 选取框标签。
就是这样。
这是在标签中添加选取框的最简单方法。添加 Custom Class MarqueeLabel 后,如果您希望标签内容的最后一个字符和第一个字符之间有一些间距,则:
第 1 步:Select 标签。
第 2 步:转到属性检查器,然后将 fadeLength 属性值增加到您想要的程度。将值 10 应用于它就足够了。
如果您希望自定义更多,请将自定义 class MarqueeLabel 添加到 Label,然后在您的代码中取出该 Label 的出口,并按照您想要的方式对其进行自定义。
您代码中该标签的出口应如下所示:
@IBOutlet var YOURLABELNAME: MarqueeLabel!
如果不是,则重新开始,首先将自定义 class 添加到标签,然后在代码文件中获取其出口。
检查此代码
var check = true
var speed = 2
var stopWidth = 200.0
override func viewDidLoad() {
label.center.x = view.center.x // Place it in the center x of the view.
label.center.x -= view.bounds.width // Place it on the left of the view with the width = the
Timer.scheduledTimer(timeInterval: TimeInterval(speed),
target: self,
selector: #selector(selectCityViewController.sliderAnimationTime),
userInfo: nil,
repeats: true)
}
@objc func sliderAnimationTime() {
// do what should happen when timer triggers an event
UIView.animate(withDuration: TimeInterval(speed), delay: 0, options: [.curveEaseOut], animations: {
if self.check {
self.check = false
self.label.center.x -= self.view.bounds.width - CGFloat(self.stopWidth)
self.view.layoutIfNeeded()
}else{
self.check = true
self.label.center.x += self.view.bounds.width - CGFloat(self.stopWidth)
self.view.layoutIfNeeded()
}
}, completion: nil)
}
我想在 Swift 中创建选取框标签。我尝试了一些代码,但无法正常工作。
我也可以用动画做到这一点,但我无法重复它。
我也试过
任何帮助将不胜感激。
我不知道为什么我得到 2 - ?!????
我尝试了很多东西。那已经不重要了...
我在 5 分钟前发现了这个,这就是我使用动画而不是选取框的答案。但是 iOS 选框是个棘手的问题!
here is the link that solved my repeating animation problem
我使用了这个代码并且它有效!也想帮助别人。
在 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 中的这段代码,您可以使用终极重复进行 Marquee,而且非常简单!只需将您的标签放在显示视图的一侧。
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)
使用一个可以Marquee up 其内容的标签非常简单。 只需在您的项目中添加 MarqueeLabel 个 pod。
Swift:
pod 'MarqueeLabel/Swift'
然后 select 您希望对其执行选取框的标签,并在身份检查器中向其添加自定义 Class 选取框标签。
就是这样。
这是在标签中添加选取框的最简单方法。添加 Custom Class MarqueeLabel 后,如果您希望标签内容的最后一个字符和第一个字符之间有一些间距,则:
第 1 步:Select 标签。
第 2 步:转到属性检查器,然后将 fadeLength 属性值增加到您想要的程度。将值 10 应用于它就足够了。
如果您希望自定义更多,请将自定义 class MarqueeLabel 添加到 Label,然后在您的代码中取出该 Label 的出口,并按照您想要的方式对其进行自定义。
您代码中该标签的出口应如下所示:
@IBOutlet var YOURLABELNAME: MarqueeLabel!
如果不是,则重新开始,首先将自定义 class 添加到标签,然后在代码文件中获取其出口。
检查此代码
var check = true
var speed = 2
var stopWidth = 200.0
override func viewDidLoad() {
label.center.x = view.center.x // Place it in the center x of the view.
label.center.x -= view.bounds.width // Place it on the left of the view with the width = the
Timer.scheduledTimer(timeInterval: TimeInterval(speed),
target: self,
selector: #selector(selectCityViewController.sliderAnimationTime),
userInfo: nil,
repeats: true)
}
@objc func sliderAnimationTime() {
// do what should happen when timer triggers an event
UIView.animate(withDuration: TimeInterval(speed), delay: 0, options: [.curveEaseOut], animations: {
if self.check {
self.check = false
self.label.center.x -= self.view.bounds.width - CGFloat(self.stopWidth)
self.view.layoutIfNeeded()
}else{
self.check = true
self.label.center.x += self.view.bounds.width - CGFloat(self.stopWidth)
self.view.layoutIfNeeded()
}
}, completion: nil)
}