当前位置: 首页 > news >正文

dw怎么做网站老版51个人空间找照片

dw怎么做网站,老版51个人空间找照片,企业为什么要开发网址,如何导入wordpress主题先看例子 每个弹幕的速度都是不一样的#xff0c;支持弹幕整体开始暂停。 如果弹幕实在是太多了#xff0c;有个缓冲队列#xff0c;不停的重试能否显示#xff0c;保证文字都能显示全#xff0c;并且每条都能显示。 实现是基于 CADisplayLink 实现的#xff0c;如此来…先看例子 每个弹幕的速度都是不一样的支持弹幕整体开始暂停。 如果弹幕实在是太多了有个缓冲队列不停的重试能否显示保证文字都能显示全并且每条都能显示。 实现是基于 CADisplayLink 实现的如此来说比直接搞个定时器来计算偏移丝滑简单的平移动画如下 import UIKitclass ViewController: UIViewController {let squareView UIView()override func viewDidLoad() {super.viewDidLoad()// 创建 CADisplayLink 对象let displayLink CADisplayLink(target: self, selector: #selector(update))// 将视图控制器添加到 displayLink 中displayLink.add(self, for: .common)// 设置视图属性squareView.frame CGRect(x: 50, y: 50, width: 100, height: 100)squareView.backgroundColor UIColor.red.withAlphaComponent(0.5)view.addSubview(squareView)}objc func update(_ displayLink: CADisplayLink) {// 在每一帧更新时移动视图squareView.frame.origin.x 5} }在这个基础版本上稍微改了改就变成如下代码 import Foundation import UIKitclass XDanMu {var row: Int 0var label: UILabel UILabel()var speed: CGFloat 0var isMe: Bool false }class XDanMuView: UIView {var displayLink: CADisplayLink?var lineHeight: CGFloat 26var gap: CGFloat 20var minSpeed: CGFloat 1var maxSpeed: CGFloat 2var isPause: Bool falsevar danmus: [XDanMu] []var danmuQueue: [(String, Bool)] []var timer: Timer?func start() {displayLink CADisplayLink(target: self, selector: #selector(update))displayLink?.add(to: RunLoop.current, forMode: .common)timer Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(handleDanMuQueue), userInfo: nil, repeats: true)}objc func handleDanMuQueue() {if danmuQueue.isEmpty {return}let danmu danmuQueue.removeFirst()addDanMu(text: danmu.0, isMe: danmu.1)}objc func addDanMu(text: String, isMe: Bool) {let danmu XDanMu()danmu.label.frame.origin.x self.frame.size.widthdanmu.label.text textdanmu.label.sizeToFit()if isMe {danmu.label.layer.borderWidth 1}var linelasts: [XDanMu?] []let rows: Int Int(self.frame.size.height / lineHeight)for _ in 0..rows {linelasts.append(nil)}for d in danmus {if d.row linelasts.count {break}if linelasts[d.row] ! nil {let endx danmu.label.frame.origin.xlet targetx linelasts[d.row]!.label.frame.origin.xif endx targetx {linelasts[d.row] d}} else {linelasts[d.row] d}}var isMatch falsefor index in 0..linelasts.count {if let d linelasts[index] {let endx d.label.frame.origin.x d.label.frame.size.width gapif endx self.frame.size.width {danmu.row indexvar ms self.frame.size.width / endx * d.speedms CGFloat.minimum(ms, maxSpeed)danmu.speed CGFloat.random(in: minSpeed...ms)isMatch truebreak}} else {danmu.row indexdanmu.speed CGFloat.random(in: minSpeed...maxSpeed)isMatch truebreak}}if isMatch false {danmuQueue.append((text, isMe))return}danmu.label.frame.origin.y lineHeight * CGFloat(danmu.row)self.addSubview(danmu.label)self.danmus.append(danmu)}objc func update(_ displayLink: CADisplayLink) {if isPause true {return}// 在每一帧更新时移动视图for index in 0..danmus.count {let danmu danmus[index]danmu.label.frame.origin.x - danmu.speedif danmu.label.frame.origin.x -danmu.label.frame.size.width {danmu.label.removeFromSuperview()danmus.remove(at: index)break}}} } 再找个需要使用的地方加入如下使用的代码即可实现上图的效果 override func viewDidLoad() {super.viewDidLoad()var danmuView: XDanMuView XDanMuView()danmuView.frame .init(x: 0, y: 100, width: self.view.frame.size.width, height: self.view.frame.size.height - 200)self.view.addSubview(danmuView)// 配置项danmuView.minSpeed 1danmuView.maxSpeed 2danmuView.gap 20danmuView.lineHeight 30// 启动弹幕danmuView.start()// 启动一个定时器灌弹幕timer Timer.scheduledTimer(timeInterval: 0.4, target: self, selector: #selector(addDanMu), userInfo: nil, repeats: false) }objc func addDanMu() {let interval CGFloat.random(in: 0.3...1.0)Timer.scheduledTimer(timeInterval: interval, target: self, selector: #selector(addDanMu), userInfo: nil, repeats: false)var text for _ in 0...Int.random(in: 1...30) {text 嘿}for _ in 0...Int.random(in: 1...2) {danmuView.addDanMu(text: text, isMe: Bool.random())} }文本的字体自行根据需求修改目前是没有增加样式跟颜色。 完整工程传送门 github gitee
http://www.zqtcl.cn/news/877447/

相关文章:

  • 专业做网站较好的公司wordpress 大内存
  • 网站关站html5编辑器手机版下载
  • 网站域名多少钱住房和城乡建设部网站注册
  • seo整站优化 wordpress广州门户网站建设公司
  • 深圳市官网网站建设平台上海在建工程查询
  • 网页制作模板的网站免费合肥网站建设5k5
  • 公司信息化网站建设实施方案永久免费国外vps无需信用卡
  • 域名备案企业网站内容好网站建设公司开发
  • 合肥公司做网站网站代码需要注意什么
  • 梧州网站制作公司高端网站开发公司有哪些
  • seo网站设计北京做app的公司有哪些
  • 佛山淘宝设计网站设计价格软件商城免费下载 app
  • 物联网型网站开发cms系统源码
  • 淘宝价格网站建设wordpress 点餐
  • 晋中网站建设公司汉滨区城乡建设规划局 网站
  • 2018年的网站制作湖北省随州市建设厅网站
  • 做网络销售保温材料用什么网站好企业网站的建设企业
  • 2008发布asp网站海外如何 淘宝网站建设
  • 小米云网站开发食品包装
  • 销售网站怎么做的帝国cms网站搬家教程
  • 甘肃省城市建设档案馆网站wordpress推广自己淘宝店
  • 专业做曝光引流网站国家反诈中心app下载流程
  • 深圳校园网站建设响应式手机网站制作
  • 景县住房和城乡规划建设局网站我想买个空间自己做网站
  • 网站建设申请计划宣传片拍摄方案模板
  • 网站开发项目经验描述html网站开发事例教程
  • 998元网站建设优化网站建设实训报告心得体会
  • 网站经营性备案流程搜索引擎优化的简写是
  • 长春制作网站南昌建站系统外包
  • 在火炉做网站公园坐什么车hexo wordpress 比较