01-UIContainerView纯代码实现及原理介绍
UIContainerView纯代码实现及原理介绍
- 1.1-在StoryBoard中使用UIContainerView
- 1.2-纯代码使用UIContainerView
- 1.3-UIContainerview特点及原理分析
1.1-在StoryBoard中使用UIContainerView
- 1.在storyboard中搜索UIContainerview并拖入到控制器中,设置约束
- 2.可以看到ContainerView自带一个segue连线的控制器,而这个
Segue
既不是Push
跳转而不是Model
跳转,而是Embed
嵌入的形式
- 3.运行,可以看到右侧控制器的视图通过UIContainerView嵌入到左侧的控制器中
1.2-纯代码使用UIContainerView
- 1.创建一个控制器,设置背景颜色为绿色
- 2.将Storyboard中的UIContainerView拖到代码时,会发现根本没有
UIContainerview
这个类,它的本质其实就是一个UIView
- 本人推测:它本质上应该是一个未开放的
UIView
的一个Category分类
- 本人推测:它本质上应该是一个未开放的
- 3.纯代码实现UIContainerview
#import "ViewController.h"#import "SecondViewController.h"@interface ViewController ()
@property (weak, nonatomic) IBOutlet UIView *containerView;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];[self addContainerView];// Do any additional setup after loading the view, typically from a nib.
}- (void)addContainerView
{//1.创建containerView目标控制器SecondViewController *second = [[SecondViewController alloc] init];//设置背景颜色second.view.backgroundColor = [UIColor greenColor];//2.将目标控制器的视图赋值给容器视图(不能用addSubView,否则设置frame无效)self.containerView = second.view;//设置显示大小self.containerView.frame = CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height-200);//3.添加到当前视图[self.view addSubview:self.containerView];//4.获取到Containerview的目标控制器NSLog(@"%@",self.containerView.nextResponder);
}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.
}@end
1.3-UIContainerview特点及原理分析
UIContainView是iOS系统中非常特殊的一个控件,它的主要特点如下:
- (1)只能在Storyboard中搜索到
UIContainerview
,代码中没有这个类- 应该是属于系统并未开放的UIView的分类
- (2)是一个不能够被渲染的视图容器
- 不能被渲染,也就是说设置背景颜色backgroundColor和bounds属性等一些渲染属性是无效的
- (1)只能在Storyboard中搜索到
UIContainerview的原理
- UIContainer通过强引用控制器的视图(赋值操作),再作为其他控制器的子视图,从而达到一个控制器中显示两个控制器视图的效果
01-UIContainerView纯代码实现及原理介绍相关推荐
- 前端JavaScript代码混淆加密原理介绍
因为JavaScript大都是运行在浏览器端,这就导致任何人都可以直接对网站的代码进行查看,如果代码没有进行任何处理就会导致直接暴露源码,他人便可轻而易举的复制你的劳动成果,但是由于没有纯粹的加密方案 ...
- iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比
iOS回顾笔记( 01 )-- XIB和纯代码创建应用的对比 很多时候我们工作很久突然闲下来的时候,是不是也感到无聊过?这就是我现在的生活,不过闲一段时间也挺好,可以好好回顾一下自己以前学习iOS路 ...
- 机器翻译评价指标之BLEU原理介绍及代码实现
欢迎关注知乎: 世界是我改变的 知乎上的原文链接 一. 原理介绍 BLEU(Bilingual Evaluation Understudy),即双语评估替补.所谓替补就是代替人类来评估机器翻译的每一个 ...
- 【原理】#01红外热成像仪的工作原理介绍
红外热成像仪是电测中比较特殊的一种仪器设备,在温度测试领域有着广泛的应用. 红外热成像仪测温的原理是怎么样的?如何选择合适的热成像仪? 安泰小课堂将分两期视频为大家进行揭秘. 本期内容将重点讲解红外热 ...
- 光场相机重聚焦原理介绍及代码解析
光场相机重聚焦原理介绍及代码解析 光场相机重聚焦–焦点堆栈深度估计法 全部代码下载地址: https://download.csdn.net/download/weixin_38285131/1044 ...
- 合并bn层到conv或FC层原理介绍及代码实现
原 合并bn层到conv或FC层原理介绍及代码实现 2017年11月09日 17:38:27 crazy-ye 阅读数:5932更多 <div class="tags-box spac ...
- Decawave官方双边测距(一对一)原理介绍及代码实现
Decawave官方双边测距(一对一)原理介绍及代码实现 一.运行平台 运行软件平台:Keil5 运行硬件平台:STM32 开发板型号:UWB-S1学习板 开发板淘宝链接:https://item.t ...
- Apache 文件解析漏洞SSRF漏洞原理介绍及代码
Apache 文件解析漏洞 SSRF漏洞原理介绍及代码 1. Apache 环境简介 2. Apache 解析漏洞介绍 3. 解析漏洞利用演示 4.利用场景介绍 1. Apache 环境简介 Ap ...
- 代码混淆的原理是什么?常见代码混淆方法介绍
移动应用代码安全非常重要,代码逆向会导致代码逻辑被获取,进一步导致控制流被hook,安全防线被破,给APP安全带来巨大风险,因此开发者一般都会进行代码混淆保护.本文主要介绍了代码混淆的原理.方法.以及 ...
最新文章
- 深入python3 (Dive Into Python 3) 在线阅读与下载
- JspServlet之Cookie
- 2018 Multi-University Training Contest 6-oval-and-rectangle(hdu 6362)-题解
- 微信小程序————经纬度转化为具体位置(逆地址解析)
- MySQL事务以及加锁机制
- 竞价推广账户创意撰写的技巧之核心思路
- Unity优化之GC——合理优化Unity的GC (难度3 推荐5)
- 辽宁交通职业技术学校计算机好不好,辽宁省交通高等专科学校信息工程系
- 此人数学15分考入清华,28岁成清华教授,其家族出了20多位院士
- 2018软件工程第九次作业(团队四)
- javascript中常用的对象创建方式有哪些?
- 关于阿拉qq大盗屏蔽winhex之后的破解.
- Html中如何自定义Video显示的长宽比
- 嵌入式面试之————大小端
- win2008服务器系统升级,Windows Server 安装和升级
- linux服务器上装r,linux服务器安装R语言及Rstudio server
- 无图言屌?YYImage 设计思路,实现细节剖析
- 边缘计算在智慧制造领域的应用
- DiCOM文件判断原图是否被翻转(镜像)
- 汽车融资租赁详解及流程介绍
热门文章
- 三十、Pyspider爬虫框架总结,爬取Scrapy文档
- tornado环境搭建
- EMNLP 2021 | 大道至简:微软提出可生成高质量文本表示的预训练语言模型
- 吊打一切现有开源OCR项目!90% +准确率,训练部署一条龙
- 做科研没人带,发不了文章怎么办?
- 重磅公开课推荐 | 如何搭建聊天机器人:技术架构剖析
- A flight (to Boston) to Denver - 基于转移的顺滑技术研究 | 论文访谈间 #22
- Java数组和Arrays类
- 东北大学 计算机调剂,2018年东北大学信息科学与工程学院考研调剂信息
- 将您重定向的次数过多什么意思_电池循环次数是什么意思?怎么计算的?