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

网站信息推广途径包括哪些淘宝客网站域名

网站信息推广途径包括哪些,淘宝客网站域名,网站开发 在线支付,免费推广网站短视频需求分析: 标签根据文字长度,自适应标签居中显示扩展 超过内容显示范围,需要换行显示,且保持居中显示 AI实现过程 提问: 回答: import UIKit import SnapKitclass DynamicLabelsContainerView: UIView…

在这里插入图片描述

需求分析

  1. 标签根据文字长度,自适应
  2. 标签居中显示
  3. 扩展 超过内容显示范围,需要换行显示,且保持居中显示

AI实现过程

提问:

在这里插入图片描述

回答:
在这里插入图片描述

import UIKit
import SnapKitclass DynamicLabelsContainerView: UIView {private let horizontalSpacing: CGFloat = 8.0private let verticalSpacing: CGFloat = 4.0// 初始化方法override init(frame: CGRect) {super.init(frame: frame)}required init?(coder: NSCoder) {fatalError("init(coder:) has not been implemented")}// 配置容器视图func configure(with strings: [String]) {// 先清除所有子视图self.subviews.forEach { $0.removeFromSuperview() }var lastLabel: UILabel? = nilvar isFirstLabelInLine = truefor string in strings {let label = UILabel()label.text = stringlabel.backgroundColor = .lightGray // 仅为了可视化,实际使用时可移除label.numberOfLines = 1self.addSubview(label)label.snp.makeConstraints { make inif let lastLabel = lastLabel {make.top.equalTo(isFirstLabelInLine ? lastLabel.snp.bottom : lastLabel.snp.top).offset(isFirstLabelInLine ? verticalSpacing : 0)make.left.equalTo(isFirstLabelInLine ? self.snp.left : lastLabel.snp.right).offset(horizontalSpacing)} else {make.top.equalTo(self.snp.top).offset(verticalSpacing)make.left.equalTo(self.snp.left).offset(horizontalSpacing)}// 确保标签不会超出容器视图的宽度make.right.lessThanOrEqualTo(self.snp.right).offset(-horizontalSpacing)}// 使用布局完成回调来决定是否需要换行label.snp.makeConstraints { make inmake.width.equalTo(label.intrinsicContentSize.width).priority(.high)}// 强制立即布局以获取label的frameself.layoutIfNeeded()// 检查是否需要换行if label.frame.maxX > self.bounds.width {isFirstLabelInLine = truelabel.snp.remakeConstraints { make inmake.top.equalTo(lastLabel?.snp.bottom ?? self.snp.top).offset(verticalSpacing)make.left.equalTo(self.snp.left).offset(horizontalSpacing)make.width.equalTo(label.intrinsicContentSize.width).priority(.high)}} else {isFirstLabelInLine = false}lastLabel = label}// 更新容器视图的高度约束以适应所有标签self.snp.makeConstraints { make inmake.bottom.equalTo(lastLabel?.snp.bottom ?? self.snp.top).offset(verticalSpacing)}}
}

验证

在这里插入图片描述

问题:

  • 超出范围没有换行展示

解决:
将下面这句代码注释
在这里插入图片描述

验证:

在这里插入图片描述
问题:

  • 第二排第二个label的布局有问题

解决问题后的最终代码:

import UIKit
import SnapKitclass DynamicLabelsView: UIView {private let horizontalSpacing: CGFloat = 8.0private let verticalSpacing: CGFloat = 4.0// 初始化方法override init(frame: CGRect) {super.init(frame: frame)}required init?(coder: NSCoder) {fatalError("init(coder:) has not been implemented")}// 配置容器视图func configure(with strings: [String]) {// 先清除所有子视图self.subviews.forEach { $0.removeFromSuperview() }var lastLabel: UILabel? = nilfor string in strings {let label = UILabel()label.text = stringlabel.backgroundColor = .lightGray // 仅为了可视化,实际使用时可移除label.numberOfLines = 1self.addSubview(label)label.snp.makeConstraints { make inif let lastLabel = lastLabel {make.top.equalTo(lastLabel.snp.top).offset(0)make.left.equalTo(lastLabel.snp.right).offset(horizontalSpacing)} else {make.top.equalTo(self.snp.top).offset(verticalSpacing)make.left.equalTo(self.snp.left).offset(horizontalSpacing)}}// 使用布局完成回调来决定是否需要换行label.snp.makeConstraints { make inmake.width.equalTo(label.intrinsicContentSize.width).priority(.high)}// 强制立即布局以获取label的frameself.layoutIfNeeded()// 检查是否需要换行if label.frame.maxX > self.bounds.width {label.snp.remakeConstraints { make inmake.top.equalTo(lastLabel?.snp.bottom ?? self.snp.top).offset(verticalSpacing)make.left.equalTo(self.snp.left).offset(horizontalSpacing)make.width.equalTo(label.intrinsicContentSize.width).priority(.high)}}lastLabel = label}// 更新容器视图的高度约束以适应所有标签self.snp.makeConstraints { make inmake.bottom.equalTo(lastLabel?.snp.bottom ?? self.snp.top).offset(verticalSpacing)}}
}

效果:

在这里插入图片描述

总结

到这里我们通过AI快速实现了动态标签控件的核心部分,只需再稍微调整一下label的样式就能完美实现我们的需求。AI帮我们写了大部分的可用的代码,虽然不能完全采用,但是确实提升了我们的开发效率,代码质量也是很不错的,我们要做的就是根据自己的需求进行修改一下。后面继续在实战中探索如何高效使用AI来帮助我们开发和学习。


感谢您的阅读和参与,HH思无邪愿与您一起在技术的道路上不断探索。如果您喜欢这篇文章,不妨留下您宝贵的赞!如果您对文章有任何疑问或建议,欢迎在评论区留言,我会第一时间处理,您的支持是我前行的动力,愿我们都能成为更好的自己!

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

相关文章:

  • 网站的内容和功能平面设计和网页设计哪个好
  • 网站建设毕业设计文献综述网站开发与技术
  • 医疗营销的网站怎么做WordPress对接QQ聊天
  • 网站怎么能被百度收录建行网站首页登录
  • 提供企业网站建设价格网站建立的步骤是
  • 引用网站代码郑州网站建设搜q.479185700
  • 网站的发布方案有哪些毕业设计可以做哪些简单网站
  • 单页淘宝客网站怎么做网站 知乎
  • 网站wordpress入侵做网站算 自由职业者
  • 设计一个网站的价格表网站的建设方法包括什么作用
  • 昆明学网站建设高清的广州网站建设
  • 网站后台文章编辑器网站建设费是什么
  • 网站做某个关键词排名该怎么做网站建设教程 作业
  • 简述网站开发设计流程图企业品牌类网站有哪些
  • 做外贸生意是不是需要建网站建设项目前期收费查询网站
  • 公司推广做哪个网站高端网站设计推广v信haotg8
  • 免费的查企业的网站wordpress php 5.5
  • 腾讯风铃怎么做网站asp网站编辑教程
  • 哪个cms做企业网站好详情页设计 制作
  • 石家庄网站建设外贸外贸网站国际化怎么做
  • 模板网站外贸建站专做化妆品网站
  • 中国十大网站排名霸州市网站建设
  • 百度网站建设产品做网站用哪种编程语言
  • 宁波手机网站开发深圳在线直播
  • 手机网站全屏显示攀枝花网站开发
  • 天津制作企业网站报价如何开发系统
  • 东营有做网站的公司北京新网数码信息技术有限公司
  • 怎么查网站的空间商路由硬盘做网站空间不
  • 外贸电商网站建设微信营销模式有哪些
  • 服装网站建设的目的和意义wordpress $pagenow