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

web前端开发案例教程代码/seo推广工具

web前端开发案例教程代码,seo推广工具,睢宁做网站公司,上海广告推广SheetInfoCell代码中,执行iconView.show(info.picurl) 时,若采用kf.indicatorType .activity,则会产生ui页面混乱,如果不使用这个加载动画,则不会产生。 与此同时,对于发现页面,是否使用加载动…

SheetInfoCell代码中,执行iconView.show(info.picurl) 时,若采用kf.indicatorType = .activity,则会产生ui页面混乱,如果不使用这个加载动画,则不会产生。
与此同时,对于发现页面,是否使用加载动画,则都不会产生ui混乱。
对于SheetInfoCell ,产生bug的具体表现为,BaseTableViewCell 中创建的container 的高度 在设置其高度自适应并且重写了自动计算高度的情况下,大于其父视图contentView。
父视图contentView的高度始终为 44 。

//
//  SheetInfoCell.swift
//  myMusic
//  歌单详情 歌单信息cell
//  Created by Unlimited_z on 2025/3/4.
//import UIKit
import TangramKitclass SheetInfoCell: BaseTableViewCell {static let NAME = "SheetInfoCell"var iconView:UIImageView!override func initViews() {super.initViews()container.tg_padding = UIEdgeInsets(top: PADDING_OUTER, left: PADDING_OUTER, bottom: PADDING_LARGE2, right: PADDING_OUTER)container.tg_space = PADDING_LARGE2container.tg_height.equal(300)container.backgroundColor = .clear//水平容器let orientationContainer = ViewFactoryUtil.orientationContainer()orientationContainer.tg_space = PADDING_OUTERorientationContainer.tg_gravity = TGGravity.vert.centerorientationContainer.tg_padding = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: PADDING_SMALL)container.addSubview(orientationContainer)//图标iconView = UIImageView()iconView.tg_width.equal(120)iconView.tg_height.equal(120)iconView.clipsToBounds = trueiconView.image = R.image.placeholder()iconView.smallCorner()iconView.contentMode = .scaleAspectFillorientationContainer.addSubview(iconView)//右侧容器let rightContainer = TGLinearLayout(.vert)rightContainer.tg_width.equal(.fill)rightContainer.tg_height.equal(.wrap)rightContainer.tg_space = PADDING_SMALLorientationContainer.addSubview(rightContainer)//标题rightContainer.addSubview(self.titleView)//用户容器let userContainer = ViewFactoryUtil.orientationContainer()userContainer.tg_space = PADDING_SMALLuserContainer.tg_gravity = TGGravity.vert.centerrightContainer.addSubview(userContainer)userContainer.addSubview(self.avatarView)userContainer.addSubview(self.nicknameView)//详情容器let detailContainer = ViewFactoryUtil.orientationContainer()//类似paddingTopdetailContainer.tg_top.equal(PADDING_MEDDLE)detailContainer.tg_space = PADDING_SMALLuserContainer.tg_gravity = TGGravity.vert.centerrightContainer.addSubview(detailContainer)detailContainer.addSubview(self.detailView)detailContainer.addSubview(ViewFactoryUtil.moreIconView())//快捷按钮容器let buttonContainer = ViewFactoryUtil.orientationContainer()buttonContainer.corner(23)buttonContainer.tg_horzMargin(PADDING_LARGE2)buttonContainer.tg_height.equal(46)container.addSubview(buttonContainer)buttonContainer.addSubview(self.collectCountView)buttonContainer.addSubview(ViewFactoryUtil.smallVerticalDivider())buttonContainer.addSubview(self.commentCountView)buttonContainer.addSubview(ViewFactoryUtil.smallVerticalDivider())buttonContainer.addSubview(self.shareCountView)}func bind(_ data: PlaylistInfo) {let info = dataiconView.show(info.picurl)titleView.text = info.title// 创建者信息if let creator = info.creator {
//                avatarView.show(creator.headurl)nicknameView.text = creator.nick}detailView.text = info.desc// 由于 MusicResponse 没有这些计数,可以显示歌曲数量collectCountView.setTitle("\(info.songnum)", for: .normal)commentCountView.setTitle("0", for: .normal)  // 或者隐藏}override func getContainerOrientation() -> TGOrientation {return .vert}lazy var titleView: UILabel = {let r = UILabel()r.tg_width.equal(.fill)r.tg_height.equal(.wrap)r.numberOfLines = 2r.font = UIFont.systemFont(ofSize: TEXT_LARGE2)r.textColor = .whitereturn r}()lazy var avatarView: UIImageView = {let r = UIImageView()r.tg_width.equal(30)r.tg_height.equal(30)r.contentMode = .scaleAspectFillr.smallCorner()return r}()lazy var nicknameView: UILabel = {let r = UILabel()r.tg_width.equal(.wrap)r.tg_height.equal(.wrap)r.numberOfLines = 1r.font = UIFont.systemFont(ofSize: TEXT_MEDDLE)r.textColor = .whitereturn r}()lazy var detailView: UILabel = {let r = UILabel()r.tg_width.equal(160)r.tg_height.equal(.wrap)r.numberOfLines = 1r.font = UIFont.systemFont(ofSize: TEXT_MEDDLE)r.textColor = .whitereturn r}()lazy var collectCountView: QMUIButton = {let r = ViewFactoryUtil.secoundButton(icon: R.image.search()!, title: "0")r.backgroundColor = .whitereturn r}()lazy var commentCountView: QMUIButton = {let r = ViewFactoryUtil.secoundButton(icon: R.image.search()!, title: "0")r.backgroundColor = .whitereturn r}()lazy var shareCountView: QMUIButton = {let r = ViewFactoryUtil.secoundButton(icon: R.image.search()!, title: "0")r.backgroundColor = .whitereturn r}()}
//
//  File.swift
//  myMusic
//  Kingfisher显示图片扩展
//  Created by Unlimited_z on 2025/3/5.
//import UIKit//图片加载
import Kingfisherextension UIImageView{/// 显示头像/// - Parameter data: <#data description#>func showAvatar(_ data:String?) {show(data, "DefaultAvatar")}/// 显示网络图片/// - Parameters:///   - view: <#view description#>///   - data: <#data description#>///   - defaultRes: <#defaultRes description#>func show(_ data:String?,_ defaultImage:String="Placeholder") {if SuperStringUtil.isBlank(data) {//空//显示默认图片image = UIImage(named: defaultImage)} else {var newData:String!if data!.starts(with: "http") {newData = data} else {newData = data?.absoluteUri()}showFull(newData)}}/// 显示绝对路径/// - Parameter data: <#data description#>func showFull(_ data: String) {
//        kf.indicatorType = .activitykf.setImage(with: URL(string: data))}/// 显示本地图片/// - Parameters:///   - view: <#view description#>///   - data: <#data description#>///   - defaultRes: <#defaultRes description#>func showLocal(_ data: String?, _ defaultImage: String = "Placeholder") {if (SuperStringUtil.isBlank(data)) {//空//显示默认图片self.image = UIImage(named: defaultImage)} else {kf.indicatorType = .activitylet url = URL(fileURLWithPath: data!)let provider = LocalFileImageDataProvider(fileURL: url)kf.setImage(with: provider)}}
}
//
//  BaseTableViewCell.swift
//  myMusic
// 简化自定义单元格的开发流程
//  Created by Unlimited_z on 2025/2/17.
//import UIKit//提供类似Android中更高层级布局框架
import TangramKitclass BaseTableViewCell: UITableViewCell {//对于需要动态评估高度的UITableViewCell来说可以把布局视图暴露出来。用于高度评估和边界线处理。以及事件处理的设置。var container:TGBaseLayout!override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {super.init(style: style, reuseIdentifier: reuseIdentifier)innerInit()}required init?(coder: NSCoder) {super.init(coder: coder)innerInit()}func innerInit() {initViews()initDatum()initListeners()}/// 找控件func initViews() {//背景透明backgroundColor = .clearcontentView.backgroundColor = .clear//去掉默认的选中颜色selectionStyle = .none//根容器container = TGLinearLayout(getContainerOrientation())container.tg_width.equal(.fill)container.tg_height.equal(.wrap)container.tg_space = PADDING_MEDDLEcontentView.addSubview(container)}/// 设置数据func initDatum() {}/// 设置监听器func initListeners()  {}/// 获取根容器布局方向func getContainerOrientation() -> TGOrientation {return .horz}/// 使用TangramKit后,让item自动计算高度,要重写该方法/// - Parameters:///   - targetSize: <#targetSize description#>///   - horizontalFittingPriority: <#horizontalFittingPriority description#>///   - verticalFittingPriority: <#verticalFittingPriority description#>/// - Returns: <#description#>override func systemLayoutSizeFitting(_ targetSize: CGSize, withHorizontalFittingPriority horizontalFittingPriority: UILayoutPriority, verticalFittingPriority: UILayoutPriority) -> CGSize {//        let size = container.systemLayoutSizeFitting(targetSize)
//        print("Calculated size: \(size)") // 方便调试return self.container.systemLayoutSizeFitting(targetSize)}
}

在这里插入图片描述
在这里插入图片描述

http://www.whsansanxincailiao.cn/news/32041038.html

相关文章:

  • 日照网络推广/优化网站结构一般包括
  • 南京我爱我家网站建设新村二手房/设计师经常用的网站
  • 做网站销售说辞/百度投放广告联系谁
  • 阳江网络问政平台回复查询/宁波seo关键词培训
  • 做网站付款流程/外贸营销网站建设
  • 巩义网站建设托管/上海seo网站优化
  • 云服务器做网站要备案吗/系统优化
  • 网站中有一个非常著名的原则/百度网盘下载
  • 手机网址是什么/seo关键词优化推广哪家好
  • 专业制作行驶证/优化设计五年级上册语文答案
  • 公司网站工程案例怎么做/hyein seo是什么牌子
  • 临安建办网站/seo网站推广教程
  • 门户网站代做/2345导航网址
  • ps在线网站/海南网站推广
  • 怎么做自己的视频网站/百度电脑版下载官网
  • 做娱乐网站少10个页面/第三方关键词优化排名
  • 建设企业网站服务/seo公司的选上海百首网络
  • 什么网站教做美食/线上营销怎么做
  • 赤峰市做网站建设的公司/营销网络
  • 静态旅游网站开发论文/网络营销的主要传播渠道是
  • 做分析图的地图网站/企业培训课程视频
  • wordpress建站怎么学/seo实战培训学校
  • 做网站需要会哪些编程语言/大数据营销的案例
  • wordpress网站背景/推广赚钱平台有哪些
  • 网站建设 图片问题/惠州网站排名提升
  • 做搜狗pc网站优/谷歌seo怎么做
  • 微小店网站建设平台/百度seo关键词点击软件
  • 甲级设计院加盟分公司/班级优化大师免费下载电脑版
  • 潍坊高端网站开发/百度公司推广电话
  • 个人建网站一般多少钱/重庆网站seo搜索引擎优化