【绘图案例-模拟ImageView Objective-C语言】

news2024/7/6 18:56:16

一、接下来,我们来模拟一下imageView,

通知

1.我们先来写一段儿简单的代码,然后我们再来说怎么着去做啊,

首先呢,imageView啊,它初始化,有两个方法:

1)init:

2)initWithImage:

这两个方法,有什么样儿的区别呢,知道吗,除了默认带不带图片以外,还有没有其他的区别,

initWithImage:创建出来的imageView,它默认是有大小的,

大小是什么,就是你图片的大小,

init,是没有frame的,

init,是x、y、宽、高、四个参数,都是0,

initWithImage:的话,x、y、是(0,0),然后呢,宽、高、就是你图片的宽、高、实际上,是有大小的啊,

2.我们来新建一个项目啊,

Name:06-模拟imageView

通知

然后呢,viewController里边儿,先来写一段儿简单的代码,

通知

需要一张图片素材,把这个me@2x.png,拖进来,

通知

UIImageView *imageView = [[UIImageView alloc] init];

通知

然后呢,给imageView设置frame,(0,0,200,200)

通知

imageView.frame = CGRectMake(0,0,200,200);

然后,给imageView设置图片,

imageView.image = [UIImage imageNamed:@“me”];

通知

然后,self.view addSubview:把imageView,加进来,

通知

[self.view addSubview:imageView];

通知

command + R,

通知

2.我们接下来,干什么,当我在点击屏幕的时候,我想让这张图片呢,换一下,换成另外一张图片,

我们再找一张图片啊,

通知

把这张图片拖进来,

通知

现在,有两张图片了,然后呢,当在这个Controller里边儿,当我点击屏幕的时候,把这段儿代码先选中、删掉啊,

通知

- touchBegan:啊,

通知

当我点击屏幕的时候,我想让这个imageView,换一张图片,

那我只需要给它的image属性,重新赋一张图片,就可以了,对吧,

通知

但是,我们好像在这一块儿,拿不到我们的image,

那我们就声明一个全局的,

通知

xWeak

通知

@property(nonatomic,weak)type *name;

通知

@property(nonatomic,weak)UIImageView *imageView;

通知

好,然后呢,让这个self的imageView,等于这个imageView,

self.imageView = imageView;

通知

然后呢,在touchesBegan:方法里边,让self.imageView的image属性,等于另外一张图片,

通知

本来是这样的,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1575543.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言进阶课程学习记录-第25课 - # 和 ## 操作符使用分析

C语言进阶课程学习记录-第25课 - # 和 ## 操作符使用分析 #运算符实验-#转化字符串预处理后代码 实验-#输出函数名预处理后的代码 ##运算符实验-##定义变量预处理后代码 实验-##定义结构体预处理后的代码 小结 本文学习自狄泰软件学院 唐佐林老师的 C语言进阶课程,图…

linux基础篇:linux挂载本地yum源——centos7.9为例

linux挂载本地yum源——centos7.9为例 一、Linux本地yum源介绍 Linux本地YUM源是一个本地存储的软件包仓库,它允许用户在不连接互联网的情况下安装、更新和管理软件包。本地YUM源可以提高软件包安装速度,降低网络带宽消耗,并提高软件包管理…

C语言程序与设计——指针地址与main函数

指针变量 在C语言中,最重要的就是对于指针和地址的理解,因为C语言是更接近底层的编程语言,所以它可以允许开发者对内存操作,这也是区别于其它编程语言的一个重要特性。 如何对内存进行操作呢。我们知道在编程过程中,在…

软件设计师:11-结构化开发与UML

结构化开发(3-4分) 一、模块化 二、耦合(背) 三、内聚(背) 四、设计原则(背) 五、系统文档 六、数据流图 数据流的起点或终点必须有一个是加工 判断依据: 1、…

CTF之GET和POST

学过php都知道就一个简单传参,构造payload:?whatflag得到 flag{3121064b1e9e27280f9f709144222429} 下面是POST那题 使用firefox浏览器的插件Hackbar勾选POST传入whatflag flag{828a91acc006990d74b0cb0c2f62b8d8}

【TI毫米波雷达】官方工业雷达包的生命体征检测环境配置及避坑(Vital_Signs、IWR6843AOPEVM)

【TI毫米波雷达】官方工业雷达包的生命体征检测环境配置及避坑(Vital_Signs、IWR6843AOPEVM) 文章目录 生命体征基本介绍IWR6843AOPEVM的配置上位机配置文件避坑上位机start测试距离检测心跳检测呼吸频率检测空环境测试 附录:结构框架雷达基…

js,uniapp,vue,小写数字转化为大写

应用场景: 把1、2、3,转为一、二、三 方法: retBigSrt(num) {const changeNum [零, 一, 二, 三, 四, 五, 六, 七, 八, 九]const unit [, 十, 百]num parseInt(num)const getWan (temp) > {const strArr temp.toString().split().re…

Github项目推荐-ChatGPT-Admin-Web

项目地址 https://github.com/AprilNEA/ChatGPT-Admin-Web 项目简介 通过api接入大模型,并基于此封装了一层用户管理的功能,适合团队内使用。 项目截图

瑞吉外卖实战学习-17、用户地址簿相关功能

用户地址簿相关功能 效果图1、根据规则创建相关文件2、新增收货地址接口3、列表查询页面以及设置默认地址 效果图 1、根据规则创建相关文件 2、新增收货地址接口 获取到传入的数据然后将id添加进去,然后存储到数据库 3、列表查询页面以及设置默认地址 list接口&am…

C顺序表:通讯录

目录 前言 通讯录数据结构 通讯录初始化 查找名字 增加联系人 删除联系人 展示所有联系人 查找联系人 修改信息 销毁通讯录 完整通讯录代码 前言 数据结构中的顺序表如果已经学会了,那么我们就可以基于顺序表来完成一个通讯录了 通讯录其实我们使用前…

1.0-spring入门

文章目录 前言一、版本要求二、第一个spring程序1.引入pom2.代码部分2.1 spring bean2.2 springContext.xml2.3 测试2.4 执行结果 总结 前言 最近想要系统的学习下spring相关的框架,于是乎,来到了B站(真是个好地方),spring会专门开一个专栏出来,记录学习心得,与大家共勉。 Spri…

[每天一道面试题] HTTP,FTP,TFTP的底层实现协议是什么

HTTP、FTP和TFTP等这些协议都是属于互联网协议网络层模型中的应用层协议。它们的底层实现主要依赖于传输层的两种协议—— TCP(传输控制协议) 和 UDP(用户数据报协议)。 HTTP: 超文本传输协议(HTTP)通常在TCP协议的基础上操作。HTTP用于在网络上传输超文本,是万维网…

【Redis 知识储备】读写分离/主从分离架构 -- 分布系统的演进(4)

读写分离/主从分离架构 简介出现原因架构工作原理技术案例架构优缺点 简介 将数据库读写操作分散到不同的节点上, 数据库服务器搭建主从集群, 一主一从, 一主多从都可以, 数据库主机负责写操作, 从机只负责读操作 出现原因 数据库成为瓶颈, 而互联网应用一般读多写少, 数据库…

云仓酒庄旗下雷盛红酒入驻香港星怡SingLa餐厅共绘美食美酒新篇章

近日,云仓酒庄旗下品牌雷盛红酒正式入驻香港餐厅星怡SingLa,这一跨界合作不仅为香港市民和游客带来了全新的味蕾享受,也标志着美食与美酒文化的很好结合,共同绘就了一幅精彩绝伦的美食美酒新篇章。 云仓酒庄一直以来都致力于为消费…

MySQL基础练习题:创建数据库

这部分主要是为了帮助大家回忆回忆MySQL的基本语法,数据库来自于MySQL的官方简化版,题目也是网上非常流行的35题。这些基础习题基本可以涵盖面试中需要现场写SQL的问题。 创建数据库 在开始练习之前,我默认你的电脑上是没有本系列练习题需要…

项目管理与经济决策(项目投资经济决策)

1.现金流量 流出系统的现金称为现金流出(CO) 流入系统的现金称为现金流入(CI) 现金流入-现金流出=净现金流量(NCF) 构成现金流量的基本因素:投资、(付现)成本、 (现金)收入、税金、利润等&a…

ICLR 2024 | 联邦学习后门攻击的模型关键层

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了免费的人工智能中文站https://ai.weoknow.com 新建了收费的人工智能中文站https://ai.hzytsoft.cn/ 更多资源欢迎关注 联邦学习使多个参与方可以在数据隐私得到保护的情况下训练机器学习模型。但是由于服务器无法…

Java初始——IDEA-web的启动

Tomcat 文件夹作用 bin 启动 关闭的脚本文件 conf 配置 lib 依赖的jar包 logs 日志 temp 临时文件 webapps 存放的网站 Maven 1.在javaweb中,需要使用大量的jar包,手动导入 2.Maven 架构管理工具 核心:约定大于配置 必须按照规则 web idea-we…

【ELK】搭建elk日志平台(使用docker-compose),并接入springboot项目

1、环境搭建 前提条件:请自行安装docker以及docker-compose环境 version: 3 services:elasticsearch:image: elasticsearch:7.14.0container_name: elasticsearchports:- "9200:9200"- "9300:9300"environment:# 以单一节点模式启动discovery…

Git 配置BCompare工具

一、Git配置BCompare工具 1、安装BCompare工具 下载BCompare安装包,打开安装包直接安装即可,如下: 2、禁止BCompare访问网络 网络进出站进行配置,限制BCompare访问网络,如果不进行上网限制,可能存在被封的…