iOS阶段学习第27天笔记(UIButton-UIImageView的介绍)
iOS学习(UI)知识点整理
一、关于UIButton的介绍
1)概念:UIButton 是一种常用的控件,通过点击触发相应的功能
2)UIButton 的几种常用的状态
1、UIControlStateNormal 正常状态
2、UIControlStateHighlighted 高亮状态
3、UIControlStateSelected 选中状态 -> 当button的selected设置成yes之后才能触发
3)UIButton常用的几种事件
1、UIControlEventTouchUpInside 按钮按下并抬起事件
2、UIControlEventTouchDown 按钮按下事件
3、UIControlEventTouchDownRepeat 按钮多次点击触发事件
4)UIButton 初始化实例代码
UIButton *button = [[UIButton alloc] init];
button.frame = CGRectMake(, , , );
button.backgroundColor = [UIColor clearColor];
[button setTitle:@"按钮1 正常状态" forState:UIControlStateNormal];
[button setTitle:@"按钮1 高亮状态" forState:UIControlStateHighlighted];
[button setTitle:@"按钮1 选中状态" forState:UIControlStateSelected]; //按钮点击时触发事件
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
//按钮按下后触发事件
[button addTarget:self action:@selector(buttonTappedDown:) forControlEvents:UIControlEventTouchDown];
//按钮双击触发事件
[button addTarget:self action:@selector(buttonTappedDown:) forControlEvents:UIControlEventTouchDownRepeat];
//设置按钮高亮状态下的字体颜色
[button setTitleColor:[UIColor lightGrayColor] forState:UIControlStateHighlighted];
//button字体变为35号加粗的字体
button.titleLabel.font = [UIFont boldSystemFontOfSize:];
//设置圆角
button.layer.cornerRadius = .f;
//设置边框宽度
button.layer.borderWidth = 2.1;
//设置边框颜色
button.layer.borderColor = [UIColor lightGrayColor].CGColor;
//设置按钮背景图
UIImage *imageNormal = [UIImage imageNamed:@"camera"];
//设置imageNormal为按钮的正常情况的图片
[button setImage:imageNormal forState:UIControlStateNormal]; UIImage *imageHightLight = [UIImage imageNamed:@"camera2"];
//设置imageHightLight为按钮的高亮情况的图片
[button setImage:imageHightLight forState:UIControlStateHighlighted];
//当button设置了图片的时候 并且没有设置高亮状态下得图片,取消高亮状态, 默认是Yes
button.adjustsImageWhenHighlighted = YES;
[self.window addSubview:button];
5)防止按钮多次点击重复提交数据的实例代码
[button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside];
- (void)buttonTapped:(UIButton *)button
{
//设置按钮不可点击
button.userInteractionEnabled = NO;
//延迟执行方法 防止按钮被快速点击或者不希望点击造成错误
[self performSelector:@selector(delayMethod:) withObject:button afterDelay:];
} //延迟方法->设置按钮为可点击状态
- (void)delayMethod:(UIButton *)button
{
button.userInteractionEnabled = YES;
}
二、关于UIImageView的介绍
1)概念:UIImageView 是iOS中专门用于展示图片的控件
2)UIImageView 初始化 实例代码
UIImageView *imageView = [[UIImageView alloc] init];
imageView.frame = CGRectMake(, , self.view.frame.size.width, self.view.frame.size.width);
imageView.backgroundColor = [UIColor whiteColor];
imageView.center = self.view.center; //tag设置控件的唯一标识,值不能重复
imageView.tag = ; //UIImageView的 clipsToBounds属性,设置为yes的时候超出部分,不予以显示
imageView.clipsToBounds = YES; //读取一张图片
UIImage *image = [UIImage imageNamed:@"icon"];
imageView.image = image; //设置图片展示模式
imageView.contentMode = UIViewContentModeScaleAspectFill; //打开imageview的用户交互 注:要实现图片点击事件此属性必须设置为YES
imageView.userInteractionEnabled = YES;
[self.view addSubview:imageView]; //为UIImageView添加点击事件
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(imageViewTapped:)];
[imageView addGestureRecognizer:tap];
3)UI_ImageView中常用的几种填充模式
1、UIViewContentModeScaleToFill 拉伸image使其充满UIImageView
2、UIViewContentModeScaleAspectFill 拉伸image使其不变形,并且充满UIImageView
3、UIViewContentModeScaleAspectFit 拉伸imgage使其不变形,并且完全显示在UIImageView中
4)UITapGestureRecognizer 除了可以给UI_ImageView添加点击方法外还可以给其他控件添加点击方法
如:UI_Lable、UI_View...等
5)iOS中获取图片的三种方法
方法一:
//把图片对象加载到内存中
UIImage *image1 = [UIImage imageNamed:@"camera"];
CGSize size = image1.size;
NSLog(@"size.w %f size.h %f",size.width ,size.height);
//如果图片的格式是png,则后缀名可以省略,其他格式不能省略
UIImage *image2 = [UIImage imageNamed:@"icon.jpeg"];
方法二:
//使用场景:读取大图片,比较占内存的,需要及时释放的图片要用这种方法
//读取icon.jpeg
NSString *imagePath3 = [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"jpeg"];
UIImage *image3 = [[UIImage alloc] initWithContentsOfFile:imagePath3]; NSString *imagePath3_1 = [[NSBundle mainBundle] pathForResource:@"icon.jpeg" ofType:nil];
UIImage *image3_1 = [[UIImage alloc] initWithContentsOfFile:imagePath3_1];
方法三:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"icon" ofType:@"jpeg"]; UIImage *image4 = [UIImage imageWithContentsOfFile:imagePath];
iOS阶段学习第27天笔记(UIButton-UIImageView的介绍)的更多相关文章
- iOS阶段学习第33天笔记(自定义标签栏(UITabBar)介绍)
iOS学习(UI)知识点整理 一.自定义标签栏 1.方法一 单个创建标签栏 #import "AppDelegate.h" #import "SecondViewCont ...
- iOS阶段学习第32天笔记(页面传值方法介绍)
iOS学习(UI)知识点整理 一.界面传值方法 1.方法一 Block传值 通过SubView视图的Block向View视图传值改变View视图的背景色 实例代码: 1)SubViewContro ...
- iOS阶段学习第26天笔记(UILabel的介绍)
iOS学习(UI)知识点整理 一.关于UILabel的使用介绍 1)概念:UILabel是一个继承自UIView的用于展示文本信息的控件 2)UI中所有的控件都继承自UIView 即UIView 是U ...
- iOS 阶段学习第24天笔记(Block的介绍)
iOS学习(OC语言)知识点整理 一.Block 的介绍 1)概念: block 是一种数据类型,类似于C语言中没有名字的函数,可以接收参数,也可以返回值与C函数一样被调用 封装一段代码 可以在任何地 ...
- iOS 阶段学习第23天笔记(XML数据格式介绍)
iOS学习(OC语言)知识点整理 一.XML数据格式介绍 1)概念:xml是extensible markup language扩展的标记语言,一般用来表示.传输和存储数据 2)xml与json目前使 ...
- iOS 阶段学习第22天笔记(JSON数据格式介绍)
iOS学习(OC语言)知识点整理 一.JSON数据格式 1)概念:json是一种网络数据传输格式,有值/对象:{“A”:1,”B”:”2”…}词典:对象的序列:[,,,,,]数组两种数据类型 2)UR ...
- iOS阶段学习第31天笔记(UINavigationBar介绍)
iOS学习(UI)知识点整理 一.UINavigationBar 的介绍 1)概念:UINavigationBar 是用于定义导航栏按钮的一个类对象 2)在使用UINavigationBar之前必须先 ...
- iOS阶段学习第30天笔记( UIViewController—Delegate(代理) )
iOS学习(UI)知识点整理 一.UIViewController的介绍 1)概念:UIViewController 即视图控制器,用来管理和控制页面跳转的一个类 ,iOS里面采用了MVC的体系结构, ...
- iOS阶段学习第34天笔记(UI小组件 UISegment-UISlider-UIStepper-UIProgressView-UITextView介绍)
iOS学习(UI)知识点整理 一.UI小组件 1.UISegmentedControl 分段选择器 实例代码 - (void)viewDidLoad { [super viewDidLoad]; / ...
随机推荐
- 使用hexo+github搭建免费个人博客详细教程
[TOC] 本文目录(注意无法点击): 前言 体验更加排版请访问原文链接:http://blog.liuxianan.com/build-blog-website-by-hexo-github.htm ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制
在<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>中,我介绍了获取AccessToken(通用接口)的方法. 在实际的开发过程中,所有的高级接口都需 ...
- Oracle数据库面试题【转载】
1. Oracle跟SQL Server 2005的区别? 宏观上: 1). 最大的区别在于平台,oracle可以运行在不同的平台上,sql server只能运行在windows平台上,由于windo ...
- PDO连接mysql和pgsql数据库
PDO连接mysql数据库 <?php $dsn="mysql:host=localhsot;dbname=lamp87"; $user="root"; ...
- getattribute()与getparameter()的区别
1.它们取到的值不同.getAttribute取到的是对象(object),而getParameter取到的是String. 2.数据传递路劲不同.request.getParameter方法传递的数 ...
- Atitit usrQBM1603短信验证码规范
Atitit usrQBM1603短信验证码规范 短信验证码扩展至短信服务和验证码服务1 主要方法1 参考模板1 短信验证码扩展至短信服务和验证码服务 主要方法 Line 27: public cla ...
- Atitit 图像处理 公共模块 矩阵扫描器
Atitit 图像处理 公共模块 矩阵扫描器 1.1. 调用说明对矩阵像素遍历处理调用1 2. 矩阵扫描器主题结构1 2.1. 主要说明 从像素点开始填充矩阵1 2.2. 得到模板中心点所对应的图像坐 ...
- JSON和JSONP的区别
先前的概念中对JSON还是比较熟悉,对JSONP不是特别的清楚,整理完相关知识发现才豁然开朗.简单的说JSON是一种数据交换格式,而JSONP是 一种非官方跨域数据交互协议.JSON是“暗号”,而JS ...
- 学习ASP.NET MVC(四)——我的第一个ASP.NET MVC 实体对象
今天我将根据数据库中的表结构添加一些类.这些类将成为这个ASP.NET MVC应用程序中“模型”的一部分. 我们使用Entity Framework(实体框架)来定义和使用这些模型类,并且 ...
- 开源MVCPager
PagedList<EntityName> list = filterList.OrderBy(m => m.Exp1).Reverse().ToPagedList2(id, );/ ...