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

中国制造网国际站网址x网站免费

中国制造网国际站网址,x网站免费,网站开发需要兼容到ie几,WordPress 百度 不收入什么是防抖,为什么要防抖? 比如我们在文档在线编辑中修改文档内容,总不能打一个字就发送一次更新请求吧,用户疯狂点击一个按钮,总不能一直触发按钮的逻辑吧。防抖被用于避免频繁触发的事件。 Swift实现防抖代码&…

什么是防抖,为什么要防抖?

比如我们在文档在线编辑中修改文档内容,总不能打一个字就发送一次更新请求吧,用户疯狂点击一个按钮,总不能一直触发按钮的逻辑吧。防抖被用于避免频繁触发的事件。

Swift实现防抖代码:

import Foundationclass Debouncer {var delay: TimeIntervalvar timer: Timer?var closure: (() -> Void)?init(delay: TimeInterval) {self.delay = delay}func debounce(closure: @escaping () -> Void) {self.closure = closuretimer?.invalidate()timer = Timer.scheduledTimer(timeInterval: delay, target: self, selector: #selector(fire), userInfo: nil, repeats: false)}@objc func fire() {closure?()}
}let debouncer = Debouncer(delay: 0.5)func action() {print("Debounced action executed")
}debouncer.debounce {action()
}debouncer.debounce {action()
}

什么是图片预加载,为什么要预加载,为什么要拼接?

图片要被渲染到屏幕上,要经历解码的阶段,图片一解码就会大很多,几MB的解码之后可能占几十MB的内存,在Swift中,图片在UIImageView设置.image属性的时候才会被解码,我们想要提前加载的话就要用UIGraphicsImageRenderer来获取图像,还有一种情况就是尺寸非常大的图片,比屏幕都大,直接解码渲染就会占很大的内存,我们还可以在预加载中对图片尺寸进行一个处理,避免内存的浪费,多张图片的拼接显示可以减少渲染次数,减少对象的创建,能提高性能。

下面是Swift代码:

import UIKitclass ViewController: UIViewController {lazy var imageView: UIImageView = {let imageView = UIImageView(frame: self.view.frame)return imageView}()override func viewDidLoad() {super.viewDidLoad()let imageUrls = [URL(string: "https://images.pexels.com/photos/356830/pexels-photo-356830.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2")!,URL(string: "https://images.pexels.com/photos/356830/pexels-photo-356830.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2")!]let dispatchGroup = DispatchGroup()var images = [UIImage]()for url in imageUrls {dispatchGroup.enter()URLSession.shared.dataTask(with: url) { data, _, error indefer { dispatchGroup.leave() }if let data = data, let image = UIImage(data: data) {images.append(image)}}.resume()}dispatchGroup.notify(queue: .main) {if let combinedImage = self.combineImages(images: images) {self.imageView.image = combinedImageself.view.addSubview(self.imageView)}}}func combineImages(images: [UIImage]) -> UIImage? {let renderer = UIGraphicsImageRenderer(size: self.view.frame.size)let combinedImage = renderer.image { context invar currentX = 0.0for image in images {image.draw(at: CGPoint(x: currentX, y: 0))currentX += image.size.width}}return combinedImage}
}

本文的内容就到这里啦,喜欢博主的可以点点关注。

http://www.yayakq.cn/news/419261/

相关文章:

  • 企业网站制作费做分录网页美工设计师就业能力要求
  • 做推广的装修网站国外优秀网站建设公司
  • 怎样做淘宝网站南宁市规划建设局 网站
  • 广州免费推广网站建设程序员和做网站那个好找工作
  • 城市建设网站调查问卷wordpress批量删除图片
  • 上海网站建设流程建个网站费用多少
  • 商城网站前台模板深圳企业有哪些
  • html5微网站2024百度下载
  • 深圳网站建设公司联系wordpress 多用户开启
  • 贵州定制型网站建设html期末大作业
  • 用J2ee怎么做视频网站网站开发定位
  • 流程网站怎么做能打不开漫画网站
  • 自己怎么在电脑上做网站鞍山建设信息网站
  • 可信网站图片logo安装建立网站的用处
  • 东莞哪家做网站很有名的公司给公司怎么做官方网站
  • 英文外贸发布网站如何搭建一个app
  • 网站设计参考网址天元建设集团有限公司重庆分公司
  • 深圳网站开发公司宝网北京公司网站制作电话
  • 做护肤品好的网站好wordpress评论数据库分离
  • 网站建设与管理论文百度app安装免费下载
  • 做HH的网站自助建站网站公司
  • 魔站网站开发wordpress网页怎么上传
  • 营销型网站有哪些建设流程wordpress 图片站主题
  • 服装定制网站源码wordpress rss小工具
  • 网站规划与建设实验心得网站下载音乐
  • 长春seo整站优化优秀个人网站设计图片
  • 如何攻克房地产网站永安网页定制
  • asp网站服务建设网站做编辑
  • 肥城网站制作wordpress getoption
  • 客户网站开发全流程wordpress如何上传主题