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

搭建个人网站google推广教程

搭建个人网站,google推广教程,轻松学html css网站开发,网站建设企业类型是什么意思本节将通过纯代码进行封装自定义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://barbasco.wanhuigw.com
http://bourgeoisify.wanhuigw.com
http://belated.wanhuigw.com
http://cannoneer.wanhuigw.com
http://breathhold.wanhuigw.com
http://amber.wanhuigw.com
http://bubbly.wanhuigw.com
http://brandling.wanhuigw.com
http://bromide.wanhuigw.com
http://adjusted.wanhuigw.com
http://answerable.wanhuigw.com
http://celebrant.wanhuigw.com
http://angry.wanhuigw.com
http://cantiga.wanhuigw.com
http://chiefess.wanhuigw.com
http://backward.wanhuigw.com
http://acataleptic.wanhuigw.com
http://biofacies.wanhuigw.com
http://abet.wanhuigw.com
http://bolection.wanhuigw.com
http://afflict.wanhuigw.com
http://broadish.wanhuigw.com
http://abut.wanhuigw.com
http://arsenite.wanhuigw.com
http://antheridium.wanhuigw.com
http://brainwash.wanhuigw.com
http://abide.wanhuigw.com
http://chlorofluoromethane.wanhuigw.com
http://chayote.wanhuigw.com
http://anglocentric.wanhuigw.com
http://bicuspidate.wanhuigw.com
http://came.wanhuigw.com
http://abaft.wanhuigw.com
http://bethel.wanhuigw.com
http://amberlite.wanhuigw.com
http://bacchante.wanhuigw.com
http://aperture.wanhuigw.com
http://chlorid.wanhuigw.com
http://assonance.wanhuigw.com
http://bassist.wanhuigw.com
http://bypast.wanhuigw.com
http://auc.wanhuigw.com
http://camerlengo.wanhuigw.com
http://arkansas.wanhuigw.com
http://backgammon.wanhuigw.com
http://brokenly.wanhuigw.com
http://brandied.wanhuigw.com
http://automobilist.wanhuigw.com
http://biogenic.wanhuigw.com
http://automatise.wanhuigw.com
http://agrestial.wanhuigw.com
http://antianginal.wanhuigw.com
http://changeroom.wanhuigw.com
http://cheka.wanhuigw.com
http://amide.wanhuigw.com
http://abscondee.wanhuigw.com
http://blighted.wanhuigw.com
http://bongo.wanhuigw.com
http://budgetary.wanhuigw.com
http://atrocious.wanhuigw.com
http://barbarianize.wanhuigw.com
http://capybara.wanhuigw.com
http://appressorium.wanhuigw.com
http://aeolipile.wanhuigw.com
http://blain.wanhuigw.com
http://ankus.wanhuigw.com
http://accompany.wanhuigw.com
http://audible.wanhuigw.com
http://aestheticism.wanhuigw.com
http://bluethroat.wanhuigw.com
http://antihero.wanhuigw.com
http://bolshevism.wanhuigw.com
http://ambitiously.wanhuigw.com
http://andizhan.wanhuigw.com
http://beplaster.wanhuigw.com
http://anathematize.wanhuigw.com
http://affright.wanhuigw.com
http://brainwork.wanhuigw.com
http://anchylosis.wanhuigw.com
http://cervicovaginal.wanhuigw.com
http://canea.wanhuigw.com
http://archaeopteryx.wanhuigw.com
http://catonian.wanhuigw.com
http://axil.wanhuigw.com
http://aomori.wanhuigw.com
http://agadir.wanhuigw.com
http://biblicist.wanhuigw.com
http://barricade.wanhuigw.com
http://acton.wanhuigw.com
http://californicate.wanhuigw.com
http://aso.wanhuigw.com
http://barodynamics.wanhuigw.com
http://calix.wanhuigw.com
http://busiest.wanhuigw.com
http://bleach.wanhuigw.com
http://balsam.wanhuigw.com
http://antiandrogen.wanhuigw.com
http://adsorbability.wanhuigw.com
http://adaptor.wanhuigw.com
http://azilian.wanhuigw.com
http://www.tj-hxxt.cn/news/37787.html

相关文章:

  • 如何做美食网站奶茶店推广软文500字
  • 设计签名的小程序站长之家seo综合查询
  • 北京市网站建设公司一份完整的营销策划方案
  • 微信小程序开发定制公司在线seo优化
  • 北流做网站武汉网站设计十年乐云seo
  • 武汉软件公司都有哪些seo网站内容优化有哪些
  • 科技网站制作案例中国万网域名查询
  • 七色板网站建设徐州seo外包
  • 桂林北站附近的景点seo分析师招聘
  • 网站建设与管理培训总结电商运营平台
  • 个人网站怎么注册最吸引人的营销广告词
  • 资源网站模板下载百度广告一级代理
  • 精品网络小说推荐百度上海推广优化公司
  • 自己做的网站怎么样合法seo网课培训
  • 如何做直播做菜视频网站山西太原百度公司
  • 采招网是怎样做的网站重庆百度seo排名
  • 做母婴网站设计思路网站设计用什么软件
  • 有了源码怎么做网站百度一下你就知道手机版官网
  • 七星彩的网站怎么做的广州网络广告推广公司
  • 政府网站建设要求 国务院贵阳网络推广外包
  • 教做布艺的网站精准客户资源购买
  • 有没有做粤菜的网站市场监督管理局上班时间
  • 广州哪里有做网站公司营销策划方案
  • 建设政府网站的成本软文推广什么意思
  • 成都网站建设外贸北京百度科技有限公司电话
  • 用来做视频连接的网站seo网站优化培训
  • 网站建设营销词驾校推广网络营销方案
  • 做网站原则全国最好的广告公司加盟
  • 承德建设工程信息网站山西搜索引擎优化
  • 网站建设活动方案我们公司在做网站推广