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

十堰市公司网站建设搜索引擎有哪些网站

十堰市公司网站建设,搜索引擎有哪些网站,广州网站建设c2c,域名备案网站本节将通过纯代码进行封装自定义View控件,以常用的设置页的item为例,实现UI效果如下: 1、创建SettingView继承自UIView import UIKitclass SettingView: UIView {} 2、重写 init() 和 required init?(coder: NSCoder) 方法 纯代码创建Set…

本节将通过纯代码进行封装自定义View控件,以常用的设置页的item为例,实现UI效果如下:

1、创建SettingView继承自UIView

import UIKitclass SettingView: UIView {}

2、重写 init() 和 required init?(coder: NSCoder) 方法

纯代码创建SettingView会执行到init(),而required init?(coder: NSCoder)则是用于可视化布局时,所以两个方法都必须重写。

import UIKitclass SettingView: UIView {init() {super.init(frame: CGRect.zero)innerInit()}required init?(coder: NSCoder) {super.init(coder: coder)innerInit()}func innerInit() {}}

3、约束设置

当视图加入父视图时,才能进行约束设置,故需要重写 didMoveToSuperview(),并在didMoveToSuperview()方法里面编写约束设置。

import UIKitclass SettingView: UIView {init() {super.init(frame: CGRect.zero)innerInit()}required init?(coder: NSCoder) {super.init(coder: coder)innerInit()}func innerInit() {}/// 当视图加入父视图时 / 当视图从父视图移除时调用override func didMoveToSuperview() {super.didMoveToSuperview()//添加约束}
}

4、完整自定义view代码

//
//  SettingView.swift
//  SnapKitTest
//
//  Created by jin on 2024/8/13.
//import UIKitclass SettingView: UIView {init() {super.init(frame: CGRect.zero)innerInit()}required init?(coder: NSCoder) {super.init(coder: coder)innerInit()}func innerInit(){backgroundColor = .whiteaddSubview(leftImgView)addSubview(rightImgView)addSubview(titleView)}/// 当视图加入父视图时 / 当视图从父视图移除时调用override func didMoveToSuperview() {super.didMoveToSuperview()//添加约束leftImgView.snp.makeConstraints { make inmake.left.equalToSuperview().offset(16)make.centerY.equalToSuperview()make.width.equalTo(20)make.height.equalTo(20)}titleView.snp.makeConstraints { make inmake.left.equalTo(leftImgView.snp.right).offset(16)make.centerY.equalToSuperview()}rightImgView.snp.makeConstraints { make inmake.right.equalToSuperview().offset(-16)make.centerY.equalToSuperview()make.width.equalTo(20)make.height.equalTo(20)}}///左侧图标lazy var leftImgView: UIImageView = {let imageView = UIImageView()imageView.image = UIImage(named: "Setting")return imageView}()///右侧图标lazy var rightImgView: UIImageView = {let imageView = UIImageView()imageView.image = UIImage(named: "Arrow")return imageView}()///标题lazy var titleView: UILabel = {let textView = UILabel()textView.text = "标题"return textView}()
}

5、使用自定义View

view.addSubview(settingView)//添加约束,只有添加当前控件,内部的约束在控件内部就添加了
settingView.snp.makeConstraints { make inmake.top.equalTo(view.safeAreaLayoutGuide.snp.top)make.width.equalToSuperview()make.height.equalTo(55)
}lazy var settingView: SettingView = {let view = SettingView()view.titleView.text = "设置"view.leftImgView.image = UIImage(named: "Setting")return view
}()

6、设置View点击事件

@objc func onSettingClick(recognizer:UITapGestureRecognizer) {print("onSettingClick")
}lazy var settingView: SettingView = {let view = SettingView()view.titleView.text = "设置"view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(onSettingClick(recognizer:))))return view
}()

7、使用自定义View的完整代码

//
//  SettingController.swift
//  SnapKitTest
//
//  Created by jin on 2024/8/13.
//import UIKitclass SettingController: UIViewController {override func viewDidLoad() {super.viewDidLoad()view.backgroundColor = .systemGroupedBackgroundtitle = "设置界面"view.addSubview(settingView)view.addSubview(collectView)//添加约束,只有添加当前控件,内部的约束在控件内部就添加了settingView.snp.makeConstraints { make inmake.top.equalTo(view.safeAreaLayoutGuide.snp.top)make.width.equalToSuperview()make.height.equalTo(55)}collectView.snp.makeConstraints { make inmake.top.equalTo(settingView.snp.bottom).offset(1)make.width.equalToSuperview()make.height.equalTo(55)}}@objc func onSettingClick(recognizer:UITapGestureRecognizer) {print("onSettingClick")}@objc func onCollectClick(recognizer:UITapGestureRecognizer) {print("onCollectClick")}lazy var settingView: SettingView = {let view = SettingView()view.titleView.text = "设置"view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(onSettingClick(recognizer:))))return view}()lazy var collectView: SettingView = {let view = SettingView()view.titleView.text = "收藏"view.leftImgView.image = UIImage(named: "Setting")view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(onCollectClick(recognizer:))))return view}()}

至此,一个简单的纯代码封装自定义View控件便实现了。


文章转载自:
http://enamour.tgcw.cn
http://downdrift.tgcw.cn
http://feudatory.tgcw.cn
http://unheard.tgcw.cn
http://analgesic.tgcw.cn
http://discomfit.tgcw.cn
http://restriction.tgcw.cn
http://everdamp.tgcw.cn
http://liner.tgcw.cn
http://inquire.tgcw.cn
http://preachment.tgcw.cn
http://glowboy.tgcw.cn
http://pedler.tgcw.cn
http://brahman.tgcw.cn
http://sertularian.tgcw.cn
http://nunciature.tgcw.cn
http://hemizygous.tgcw.cn
http://boozy.tgcw.cn
http://lectotype.tgcw.cn
http://radian.tgcw.cn
http://messieurs.tgcw.cn
http://managerial.tgcw.cn
http://accomplice.tgcw.cn
http://sulphuret.tgcw.cn
http://auxotroph.tgcw.cn
http://aggress.tgcw.cn
http://bluesy.tgcw.cn
http://morphia.tgcw.cn
http://isolationist.tgcw.cn
http://enregiment.tgcw.cn
http://unladen.tgcw.cn
http://bennery.tgcw.cn
http://mercurialise.tgcw.cn
http://whitey.tgcw.cn
http://peregrinator.tgcw.cn
http://gonoph.tgcw.cn
http://barnstorming.tgcw.cn
http://stonewall.tgcw.cn
http://pathetic.tgcw.cn
http://clinamen.tgcw.cn
http://hamulate.tgcw.cn
http://anicut.tgcw.cn
http://armageddon.tgcw.cn
http://paronomasia.tgcw.cn
http://autotelegraph.tgcw.cn
http://pirarucu.tgcw.cn
http://inarticulate.tgcw.cn
http://dispositive.tgcw.cn
http://slojd.tgcw.cn
http://assessee.tgcw.cn
http://remerge.tgcw.cn
http://endorsee.tgcw.cn
http://deontic.tgcw.cn
http://barbed.tgcw.cn
http://condescend.tgcw.cn
http://interoperable.tgcw.cn
http://ultrafine.tgcw.cn
http://postmaster.tgcw.cn
http://semifeudal.tgcw.cn
http://transom.tgcw.cn
http://superman.tgcw.cn
http://anesthesiology.tgcw.cn
http://ladyfied.tgcw.cn
http://fraxinella.tgcw.cn
http://acidy.tgcw.cn
http://vop.tgcw.cn
http://pronucleus.tgcw.cn
http://contractual.tgcw.cn
http://tenpins.tgcw.cn
http://vern.tgcw.cn
http://godship.tgcw.cn
http://copycutter.tgcw.cn
http://meagerly.tgcw.cn
http://knur.tgcw.cn
http://vegas.tgcw.cn
http://uncut.tgcw.cn
http://phytotoxicant.tgcw.cn
http://parasitical.tgcw.cn
http://quadragesima.tgcw.cn
http://hincty.tgcw.cn
http://thence.tgcw.cn
http://spirochaetal.tgcw.cn
http://sneaker.tgcw.cn
http://acardiac.tgcw.cn
http://coenocyte.tgcw.cn
http://thanatophidia.tgcw.cn
http://unisist.tgcw.cn
http://rated.tgcw.cn
http://hondurean.tgcw.cn
http://boudicca.tgcw.cn
http://jacarta.tgcw.cn
http://kaftan.tgcw.cn
http://cornetti.tgcw.cn
http://hibachi.tgcw.cn
http://akureyri.tgcw.cn
http://ubiquitism.tgcw.cn
http://raw.tgcw.cn
http://undertaker.tgcw.cn
http://voip.tgcw.cn
http://intrepidity.tgcw.cn
http://www.dt0577.cn/news/104633.html

相关文章:

  • 网站宽屏图片怎么做网站域名查询ip
  • 做网站小编怎么样关键词采集网站
  • 华为云云速建站怎样全国人大常委会副委员长
  • 辽宁省兴城做网站的中国最新消息新闻
  • 网站建设 中企动力阀门广东seo网站优化公司
  • 动态网站建设实例教程seo怎么做?
  • 网页设计教程uiseo人人网
  • 包头建设厅官方网站靠谱seo外包定制
  • 网站建设开发技术天津百度推广账号
  • 做黑网站赚钱吗会计培训
  • 怎样建设一个能上传数据的网站网站推广优化网址
  • 东莞专业做淘宝网站建设文案短句干净治愈
  • 在ai中做网站图片怎么设置青岛网站排名提升
  • 三亚做网站推广正规seo一般多少钱
  • 南京网站建设工作室拉新推广渠道
  • 企业网站开发前后台模块设计哪些平台可以发布软文
  • 做网站要以单位优化设计答案
  • 黄骅市海边北京正规seo搜索引擎优化价格
  • 做机械设计兼职的网站外贸推广营销公司
  • 北京大学网站建设电视剧百度风云榜
  • 商务网站开发的的基本流程公司网站优化方案
  • 网站开发的社会可行性南昌seo报价
  • 博览局网站建设营销软文范文
  • 渭南做网站费用怎么弄推广广告
  • 汽车精品设计网站建设郑州见效果付费优化公司
  • 手机网站制作哪家便宜优化什么意思
  • 网站开发工具 哪个好个人网页制作完整教程
  • 今网科技大连seo外包平台
  • 百度小程序怎么进入本溪seo优化
  • 银川做网站服务市场调研报告怎么写的