首页 > 其他分享 >iOS swift便利构造器

iOS swift便利构造器

时间:2023-10-27 15:26:08浏览次数:37  
标签:初化 self iOS 列表 callback init 便利 swift datas

背景:经常需要把一些UI内容写到地一个类里,初化的时候只设置位置,我们能不能把一些已知的参数通过初化的时候直接传进去呢?显然是可以的。

假如我们要写一个弹框列表,已知列表的内容,弹框背景全屏幕展示,怎么把列表数据当参数在初化时传进去呢,接下直接上代码。

 

class UBListChoiceView: UIView {

var callback:Callback?

var datas:[String]?

// 主要看这里
convenience init(datas:[String]?, callback:Callback?) {
let rect = UIScreen.main.bounds
self.init(frame: rect)
self.datas = datas
self.callback = callback
initSubviews()
}

func initSubviews() {
// 实现具体内容
}

}

  

关键是使用convenience关键字init方法的定义及self.init方法调用,搬个砖加深一下印象。

标签:初化,self,iOS,列表,callback,init,便利,swift,datas
From: https://www.cnblogs.com/adongdev/p/17792418.html

相关文章

  • axios中post请求后台req.body接收不到参数的解释
    axios的get请求都是把参数放在params属性下,在post请求下有两种方法,一种是放在params属性中,适合传参较少且数据较简单的情况,另外一种是放在data属性中,如果传参中含有引号、等号、拼接的json串或传参的数据量较大时候使用;后台的服务器的配置,node后台一般会配置中间件解析数据,包含......
  • vapor 基于swift 的web 框架
    vapor是基于swift的web框架,包含了不少功能,官方也提供了不少扩展,同时官方提供的模版可以直接基于docker运行说明对于希望学习swift同时基于swift开发web应用的是一个不错的选择,可以学习练练手参考资料https://vapor.codes/https://github.com/vapor/vapor......
  • 苹果发布 iOS 17 正式版
    苹果今天凌晨正式推送iOS17正式版更新,其内部版本号和上周RC版本相同,均为21A329。在全新的iOS17系统中,苹果加入了待机显示功能,为充电时将iPhone横屏放置带来了焕然一新的全屏体验,不用靠近,信息也能一目了然。此外用户可以为通讯录用户设置海报,显示图像、名字等信息。iOS......
  • iOS 父视图设置阴影 并且内部的子视图左右下边设置圆角
    给视图设置阴影的时候无法使用masksToBounds=YES,否则阴影也会被截取掉,将无法看到阴影效果如上图中所示,弹窗中每个item是一个类似card的效果,内部包含选择框和下面的轮播图,给item设置阴影后发现下边的轮播图超出部分还是直角效果,这样很不好看,所有这里通过单独给轮播图设置mark来实......
  • iOS 解决父视图点击事件导致子视图事件不触发
    如图,是蓝色父视图blueView添加tap事件,内部红色子视图redView的tap事件将会无法触发解决办法UITapGestureRecognizer*tap=[[UITapGestureRecognizeralloc]initWithTarget:selfaction:@selector(itemCLick)];tap.delegate=self;[self.blueViewaddGestureRecogni......
  • iOS自动混淆测试处理笔记
    ​ 1 打开ipa,导出ipa 路径和配置文件路径会自动填充   ​2 点击开始自动混淆测试处理自动混淆测试是针对oc 类和oc方法这两个模块进行自动混淆ipa,并ipa安装到设备中运行,通过检测运行ipa包是否崩溃,来对oc类和oc方法进行筛选。如果崩溃,则该类名或方法名不可混淆......
  • 【iOS】修改App名字
    1、直接在Xcode中文件结构的最外层的Target修改名字,会自动提示其他地方也rename,点击ok后,的确可以运行正常。但是文件夹名字等还是原来的名字。2、文件夹名字更改3、target-BuildSettings中更改,如果使用了导入的SDK库文件,尤其要注意下:target-BuildSettings-SearchPaths......
  • RTMP流媒体服务器LiteCVR支持在iOS播放WebRTC低延时视频流
    视频监控设备是安防行业的细分专业领域,近年来,视频监控业务正在向其他领域加速渗透。众所周知,iOS系统支持HLS流,但是HLS流延时高,无法满足实时流的要求;而WebRTC播放延时低,因此,很多用户希望能在iOS系统上播放Webrtc视频流。针对用户的这一需求,LiteCVR平台灵活的视频能力,可以完全满足。......
  • Vue 中 axios 的使用和跨域问题的解决
    一、内容:1.Axios是一个基于promise的HTTP库,类似于jQuery的ajax,用于http请求。axios并不是vue插件,所以不能使用Vue.use()。2.它既可以应用于浏览器端,也可以应用于node.js编写的服务端。3.Axios具有以下特性: (1)支持PromiseAPI。 (2)拦截请求与响应,比如:在请求前......
  • iOS配置通用链接后,分享页面,打开微信后,一直显示连接中
    一开始发现的问题是  apple-app-site-association  这个json里面的bundleid错了但是修正之后仍然显示连接中: 微信开放平台后台显示通用效验通过微信自检代码 checkUniversalLinkReady 检测失败 后来领导说上线之后可能就好了,果然,上线了,分享就没问题了......