[TwistedFate]MVC视图控制器

政府科技管理者如何提升科技成果转化项目进场交易的备案效率?.docx 政府科技管理者如何提升科技成果转化项目进场交易的备案效率? 立即下载

MVC

基本介绍

  • UIViewController是MVC设计模式的核⼼。
  • MVC是⼀个框架级的设计模式。
  • M是Model,主要⽤于建⽴数据模型(即数据的结构)
  • V是View,我们能看到的所有控件都是view,view主要的功能是展⽰数据。
  • C是控制器,主要是控制M和V的通信
    一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑

优点

让视图(View)可以复用

应用

首先 视图层
1. 视图层(view) 只写视图的布局
2. 数据模型层(model) 只写数据的结构(以NS开头)
3. 控制器(controller)负责逻辑部分(例如从model里取数据 然后去更改视图显示)
MVC 把工程中的代码模块化(降低耦合度) 尽量然视图部分的代码可以复用
一般一个视图控制一个页面

视图控制器

每一个视图控制器 都自带一个view
这个view和屏幕一样大

loadView方法

每一个视图控制器 都自带一个View
并且这个View跟屏幕一样大

- (void)loadView{
// 这个方法是加载视图的 并且加载的是自身的View
// 调用父类的方法 去加载自身的View
// [super  loadView];

// 用之前的LoginView替换 控制器自带的View
    LoginView *logview = [[LoginView alloc] initWithFrame:[UIScreen mainScreen].bounds];
    logview.tag = 1000;
    // 帮系统给self.view赋值
    self.view = logview;
    [logview release];
}

viewDidLoad

视图已经加载完成

 1. (void)viewDidLoad{
    [super viewDidLoad];
    //  控制器中写逻辑部分
    // 更改一下自身的颜色
    self.view.backgroundColor = [UIColor grayColor];
    LoginView *loginView = (LoginView *)self.view ;
    [loginView.loginButton addTarget:self action:@selector(button:) forControlEvents:(UIControlEventTouchUpInside)];
}

didReceiveMemoryWarning

 2. (void)didReceiveMemoryWarning{
    [super didReceiveMemoryWarning];
    NSL(@"内存警告");
    // 内存警告 做什么
    // 释放已经显示过的视图 并且不是当前显示的
    // 如果这个视图正在被显示 那么这个视图的window属性就不为空
    if([self isViewLoad] == YES && self.view.window == nil){
    // 把当前视图释放
    self.view = nil;
    }
}

检测屏幕旋转

屏幕旋转
- 屏幕横屏时 改变原来的布局
- 屏幕竖屏时 屏幕竖屏时 变回原来的布局
1. 允许屏幕旋转

- (BOOL)shouldAutorotate{
    return YES;
}
  1. 指定屏幕旋转的方向
- (NSUInteger)supportedInterfaceOrientations{
    // 制定屏幕旋转方向
    return UIInterfaceOrientationMaskAll;
}
  1. 找到旋转触发的方法
- (void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{
    // 打印屏幕大小
    NSLog(@"%@",NSStringFromCGSize(size));
}
  1. 判断屏幕方向 更改布局
// 重新布局子视图
// frame发生变化的时候会触发layoutSubViews方法
- (void)layoutSubviews{

    // 因为不知道父类这个方法做了什么
    // 所以需要在重写的时候先调用父类的方法 然后再写自己需要写的方法
    [super layoutSubviews];
    // 更改布局 frame发生变化 相当于横屏了
    // 此时 需要重新布局
    // 判断竖屏 还是 横屏
    // 1.把应用程序取出来
    // 2.判断一下当前应用程序 屏幕的朝向

    // 取出应用程序
    // 单例方法命名规范share----
    UIApplication *app = [UIApplication sharedApplication];
    // 判断方向
    if (app.statusBarOrientation == UIInterfaceOrientationPortrait || app.statusBarOrientation == UIInterfaceOrientationPortraitUpsideDown) {
        NSLog(@"竖着");


            self.passWordLTView.frame = CGRectMake(self.userNameLTView.frame.origin.x, self.userNameLTView.frame.origin.y + self.userNameLTView.frame.size.height + kRowHeight, self.userNameLTView.frame.size.width, self.userNameLTView.frame.size.height);
    }else {
        NSLog(@"横着");
            self.passWordLTView.frame = CGRectMake(self.userNameLTView.frame.origin.x + self.userNameLTView.frame.size.width + 10, self.userNameLTView.frame.origin.y , self.userNameLTView.frame.size.width, self.userNameLTView.frame.size.height);
    }
}
  1. 测试一下
山区道路边坡落石隐患检测数据集VOC+YOLO格式241张1类别.md 【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。 立即下载

相关推荐

手把手教你用WKT文件在Petrel中创建自定义坐标系统(附CGCS2000转换模板)

本文详细介绍了如何在Petrel软件中利用WKT文件创建自定义坐标系统,并重点提供了CGCS2000坐标系的完整转换模板与实战步骤。通过解析坐标系统的三大支柱(大地坐标系、投影坐标系、基准转换)和WKT文件结构,指导用户从零开始构建适用于本土化项目的坐标系统,确保地质建模与空间数据处理的精度与一致性。

gpt4scribbler的博客 280

SpringMVC + summernote可视化编辑器整合(1)

本次着重讲解一下springmvc框架下的集成 summernote编辑器:如下该编辑器跟知乎平台上编辑器类似,可以自己在JS控制文件中进行相关控件的控制。本次summernote版本是:/*! Summernote v0.8.1 | (c) 2013-2015 Alan Hong and other contributors | MIT license */与目前官网版本方法基本一致首先,关于s...

a11441555的博客 1620

1G/2.5G Ethernet PCS/PMA or SGMII

SGMII即Serial GMII,串行GMII,收发各一对差分信号线,时钟频率625MHz,在时钟信号的上升沿和下降沿均采样,所以总的数据速率为1.25Gbps=625Mbps*2。参考时钟RX_CLK由PHY提供,是可选的,主要用于MAC侧没有时钟的情况,一般情况下,RX_CLK不使用。收发都可以从数据中恢复出时钟。在TXD发送的串行数据中,每8比特数据会插入TX_EN/TX_ER 两比特控制信息,同样,在RXD接收数据中,每8比特数据会插入RX_DV/RX_ER 两比特控制信息。

sqzjiayou的博客 1万+

[TwistedFate]自定义视图

LTView自定义视图的步骤 创建一个继承自UIView的类 重写新类的初始化方法 把想封装的视图添加封装到 新类里面(初始化到新类中) 为了方便外部进行赋值取值 把添加的视图写成属性(别忘了释放内存) 测试一下 自定义视图的好处提高工作效率 大大提高代码的复用性具体实现自定义Label-TextField视图创建LTView类继承自LTView// 将要创建的控件用属性写在.h文件中 @prop

Do not just be a pragrammer 627

UNITY2022 Cardboard环境搭建

必须安装 Git,并且 git 可执行文件必须位于 PATH 环境变量中。考文档:https://developers.google.cn/cardboard/develop/unity/quickstart?转到 Assets/Samples/Google Cardboard//Hello Cardboard/Scenes/HelloCardboard 场景中。粘贴https://github.com/googlevr/cardboard-xr-plugin.git到文本输入字段中。

weixin_39510925的博客 1211

英飞凌AURIX™ Development Studio(ADS)工程调试与烧录实战指南

本文详细介绍了英飞凌AURIX™ Development Studio(ADS)的工程调试与烧录实战指南。从调试环境搭建、硬件连接到断点设置、变量监控等核心调试技巧,帮助开发者快速掌握ADS安装使用教程,提升多核处理器开发效率。

k8l9m0n的博客 574

[TwistedFate]图片异步加载,KVO

异步下载图片自定义类imageDownLoader类思路: - 异步下载图片首先需要一个网址字符串 (需要传入一个字符串) - 加载完图片数据需要将一个data传给controller显示(代理传值) - 考虑到异步加载可能成功,也可能失败 代码实现: - 定义协议// 创建一个协议 @protocol ImageDownLoadDelegate <NSObject>// 请求成功 -

Do not just be a pragrammer 447

逆向实战:从x-mini签名到RPC调用,Frida动态分析小红书加密协议

本文通过实战案例,详细拆解了小红书App的加密协议逆向分析过程。从识别x-mini签名等关键参数入手,结合静态分析与Frida动态Hook技术,追踪到核心的RPC调用入口,并最终封装成可独立调用的RPC函数,为安全研究和协议理解提供了完整的技术路径。

moss5的博客 1035

[TwistedFate]滑块UISlider 跑图UIImageView

UISlider初始化及设背景色UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(40, 100, 300, 20)]; slider.backgroundColor = [UIColor redColor];设置轨迹颜色[slider setMinimumTrackTintColor:[UIColor greenColor]

Do not just be a pragrammer 709

【IoT】 产品设计之结构设计:如何设计产品按键

1、硅胶按键功能实现有两种接触方式 1)硅胶按键按压在DOME片(锅仔片)上 通常用在手机、儿童手表手机、防水手机等防水设备上。 2)硅胶按键增加导电基,一种黑色的导电碳粒,实现回路导电 通常用在遥控器、电脑键盘、特殊设备上。 两种方式结构设计原理是一样的,按键的固定与配合间隙与行程要确保好。 2、硅胶遥控器按键的结构方式(导电基) 按键帽为大颗粒实心的,触点为黑色导电基,通过压注成型融合为一体,那么这种按键结构设计时需要注意那些呢? 最主要的是按键按压回弹的手感,由于没有DOME片实现

产品线负责人 8673

Misc-RAR隐写

题目来自于:XCTF的SimpleRAR,由于涉及到许多新知识,所以写篇小文子记录一下。 一、下载完后是一个压缩包。 里面就有一个flag.txt,打开之后发现有一串字符是flag is not here,而且我们查看他的文件大小,只要十六字节,绝对不可能再藏着什么信息了。 然后把压缩包拉到010editor里面,发现一下子出来好多新的内容,很明显是有夹杂着的附加文件。 二、rar文件头信息。 rar 是由一个一个 block 组成的,每个 block 有以下几个部分 ...

admin的博客 1362

[TwistedFate]Label自适应高度

Label的自适应高度创建一个labelUILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 300, 100)]; label.numberOfLines = 0; label.font = [UIFont systemFontOfSize:16]; label.backgroundColor = [UIColor

Do not just be a pragrammer 683

5、快速入门

点击启动实例按钮,并设计一个business key,每个实例会有一个business key, 业务主键,也相当于一个流程实例唯一key,一般会与一次业务强相关,比如一个订单号 ,此处取为shopping_1;付款程序完成后会流转到物流发货任务,此时java工程的相应订阅会收到任务,并进入断点,且读到到toWhere变量。单击shopping可以进入实时流程图的执行图,此时流程流转到第一个任务,需要业务系统完成此任务,并通知引擎。添加类,分别订阅流程中的加入购物车任务和物流发货任务。

leyoliu的博客 3502

[TwistedFate]UISegmentedControl

1

Do not just be a pragrammer 633

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

[TwistedFate]初级数据持久化

初级数据持久化沙盒沙盒机制 每一个APP安装到手机上或者模拟器上, 都会自动生成三个文件夹 这三个文件夹叫沙盒 可以理解为这个APP的沙盒 每个APP的文件夹都是相对独立的 只能自己的应用去访问 不可以互相访问 文件夹中 存储的是 代码以外的 所有数据 例如(图片素材 声音 视频 文档等)也就是说 持久化文件(缓存文件)可以存储到 文件夹中 打开沙盒的各个文件夹路径- (void)path{

Do not just be a pragrammer 614

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

[TwistedFate]触摸事件 晃动事件 target/action

触摸事件的方法创建TouchView类 并在根视图控制器里初始化 类里 添加触摸事件响应方法- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ NSLog(@"开始摸"); // UITouch保存手指的信息 例如触摸的点 // UITouch *touch = [touches anyObjec

Do not just be a pragrammer 601

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

[TwistedFate]UIView UILabel

MRC下属性的属性MRC retain assign ARC retain相当于strong 一般修饰对象 assign相当于weak 一般修饰基本数据类型window初始化// 打印满屏的bounds self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelea

Do not just be a pragrammer 575

[TwistedFate]导航视图控制器

导航视图控制器UINavigationController导航控制器,是iOS中最常⽤的多视图控制器之⼀,它⽤来管理多个视图控制器。 导航控制器可以认为是管理控制器的控制器,主要管理有层级关系的控制器 UINavigationController通过栈的⽅式管理控制器的切换,控制⼊栈和出栈来展⽰各个视图控制器 UINavigationController的ContentView⾥始终显⽰栈顶控

Do not just be a pragrammer 562

[TwistedFate]KVO监测Model图片加载

KVO监测Model图片加载使用上一篇的ImageDownLoader类 目的:网络请求数据时,由于图片比较大,加载较慢,可以先加载数据,并显示,而图片可以之后分开加载,加载完再显示详细步骤 在加载数据的model类中添加属性,方法及遵守协议 <ImageDownLoadDelegate> // 请求图片类 @property (nonatomic, retain) ImageDownLoade

Do not just be a pragrammer 549

[TwistedFate]UITableView表视图编辑,移动

UITableView编辑数据准备// 初始化数据 - (void)initializeData{ NSArray *array = @[@"0", @"1", @"2", @"3", @"添加"]; NSArray *array2 = @[@"0", @"1", @"2", @"3", @"4", @"添加"]; self.firstArray = [NSMutableAr

Do not just be a pragrammer 541

[TwistedFate]UITableView表视图

表示图TableView表视图UITableView,iOS中最重要的视图,随处可⻅见。表视图通常⽤用来管理⼀一组具有相同数据结构的数据. 步骤与之前一样,先创建根视图,因为tableView的实现方法比较多,可以创建一个addTableView方法,然后在视图控制器的viewDidLoad中调用.初始化以及代理设置- (void)addTableView{ // 初始化 UITableVie

Do not just be a pragrammer 523

[TwistedFate]多线程编程NSThread

多线程编程进程,线程 正在活动(运行的)一个应用程序,就是一个进程; 每一个进程都至少有一个线程,主线程 线程:每一个线程都是独立的,可以执行任务 除了主线程,剩下的都是子线程,子线程可以有很多个 ,但是线程是耗费资源的(一般不超过5条,3条为佳) 主线程操作的任务:一半时间UI界面的现实,按钮的点击,屏幕滚动,基本一切用户能看见的操作均在主线程中操作 比较大的耗时操作都可以在子线程中操作 比如:下

Do not just be a pragrammer 519

[TwistedFate]XML JSON数据结构解析

XML数据解析SAX解析simple API for XML解析xml数据- (void)xmlParserUpData{ // 利用的是系统的NSXMLParser // xml分析类 // 以驱动事件进行xml的解析(利用触发得的代理方法解析) // 特点: 逐行解析// 获取路径 NSString *path = [[NSBundle mainBundle] pathFor

Do not just be a pragrammer 495

[TwistedFate]数据库初级使用

SQLite数据库使用步骤: 1. 引入libsqlite3.0框架 2. 在数据库操作类里 引入创建单例类实现数据库的管理使用// 单例的初始化方法 + (SQLiteManager *)shareManager;// 插入数据 - (void)insertTableWithStudent:(Student *)stu;// 删除数据 - (void)deleteWithAge:(NSI

Do not just be a pragrammer 490

[TwistedFate]UITableViewCell自定义-01

自定义cell步骤: 创建TableViewCell的子类 重写初始化方法 要添加的控件添加到到cell的现实内容区域contentView上面 把系统的cell 替换成自定义cell 完成 创建MyTableViewCell类// 自定义初始化 - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(

Do not just be a pragrammer 487
上一篇: [TwistedFate]自定义视图
下一篇: [TwistedFate]容器视图控制器 视图生命周期
zZZ浮生
博客等级 码龄11年 12粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值