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]; / ...
随机推荐
- Linux下安装SVN服务端小白教程
安装 使用yum安装非常简单: yum install subversion 配置 创建仓库 我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成 ...
- 最全数据结构详述: List VS IEnumerable VS IQueryable VS ICollection VS IDictionary
本文对常用的数据结构详述:Array, ArrayList,List,IList,ICollection, Stack, Queue, HashTable, Dictionary, IQueryabl ...
- 230行实现一个简单的MVVM
作者:mirone链接:https://zhuanlan.zhihu.com/p/24451202来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. MVVM这两年在前端届 ...
- Java-继承,多态练习0922-03
编写一个Java应用程序,该程序包括3个类:Monkey类.People类和主类 E.要求: (1) Monkey类中有个构造方法:Monkey (String s),并且有个public void ...
- qqzoneQQ空间漏洞扫描器的设计attilax总结
qqzoneQQ空间漏洞扫描器的设计attilax总结 1.1. 获取对方qq(第三方,以及其他机制)1 1.2. QQ空间的html流程1 1.3. 判断是否有权限1 1.4. 2015年度Web服 ...
- fir.im Weekly - 给 Mac 应用开发者的教程
写作是一件苦差事.无论写代码,还是写文章. 关于 Mac 应用开发,国内很少有完整的书籍或教程.最近@剑指人心写的 <Mac 应用开发基础教程>终于!完!稿!了! 这本书中对 Mac 平台 ...
- sdk更新代理设置
sdk更新代理设置 http://www.cnblogs.com/zhoujg/p/4560998.html
- Model-View-Controller(MVC) is an architectural pattern that frequently used in web applications. Which of the following statement(s) is(are) correct?
Model-View-Controller(MVC) is an architectural pattern that frequently used in web applications. Whi ...
- C++11模板类使用心得
1.推荐使用std::shared_ptr<TaskT>代替指针TaskT*使用,shared_ptr是一种智能指针,能自主销毁释放内存,在c++11中被引入,在多线程编程中有很大的用处, ...
- BrowserSync前端调试工具使用
上次介绍了一款DebugGap移动端调试工具DebugGap推荐.但是这几天使用了之后感觉还是有些不足,尤其是里面的调试工具虽然和Chrome里面的调试长的很像,但是多少有些不同,使用起来还是不太方便 ...