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的介绍)的更多相关文章

  1. iOS阶段学习第33天笔记(自定义标签栏(UITabBar)介绍)

    iOS学习(UI)知识点整理 一.自定义标签栏 1.方法一 单个创建标签栏 #import "AppDelegate.h" #import "SecondViewCont ...

  2. iOS阶段学习第32天笔记(页面传值方法介绍)

    iOS学习(UI)知识点整理 一.界面传值方法 1.方法一  Block传值  通过SubView视图的Block向View视图传值改变View视图的背景色 实例代码: 1)SubViewContro ...

  3. iOS阶段学习第26天笔记(UILabel的介绍)

    iOS学习(UI)知识点整理 一.关于UILabel的使用介绍 1)概念:UILabel是一个继承自UIView的用于展示文本信息的控件 2)UI中所有的控件都继承自UIView 即UIView 是U ...

  4. iOS 阶段学习第24天笔记(Block的介绍)

    iOS学习(OC语言)知识点整理 一.Block 的介绍 1)概念: block 是一种数据类型,类似于C语言中没有名字的函数,可以接收参数,也可以返回值与C函数一样被调用 封装一段代码 可以在任何地 ...

  5. iOS 阶段学习第23天笔记(XML数据格式介绍)

    iOS学习(OC语言)知识点整理 一.XML数据格式介绍 1)概念:xml是extensible markup language扩展的标记语言,一般用来表示.传输和存储数据 2)xml与json目前使 ...

  6. iOS 阶段学习第22天笔记(JSON数据格式介绍)

    iOS学习(OC语言)知识点整理 一.JSON数据格式 1)概念:json是一种网络数据传输格式,有值/对象:{“A”:1,”B”:”2”…}词典:对象的序列:[,,,,,]数组两种数据类型 2)UR ...

  7. iOS阶段学习第31天笔记(UINavigationBar介绍)

    iOS学习(UI)知识点整理 一.UINavigationBar 的介绍 1)概念:UINavigationBar 是用于定义导航栏按钮的一个类对象 2)在使用UINavigationBar之前必须先 ...

  8. iOS阶段学习第30天笔记( UIViewController—Delegate(代理) )

    iOS学习(UI)知识点整理 一.UIViewController的介绍 1)概念:UIViewController 即视图控制器,用来管理和控制页面跳转的一个类 ,iOS里面采用了MVC的体系结构, ...

  9. iOS阶段学习第34天笔记(UI小组件 UISegment-UISlider-UIStepper-UIProgressView-UITextView介绍)

    iOS学习(UI)知识点整理 一.UI小组件 1.UISegmentedControl 分段选择器  实例代码 - (void)viewDidLoad { [super viewDidLoad]; / ...

随机推荐

  1. [异常解决] 安卓6.0权限问题导致老蓝牙程序出现异常解决办法:Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...

    一.问题: 之前写的一款安卓4.4的应用程序,用来连接蓝牙BLE,而现在拿出来用新的AS编译(此时SDK为6.0,手机也是6.0)应用程序并不能搜索到蓝牙,查看log总是报权限错误: Need ACC ...

  2. Stealth视频教程学习笔记(第一章)

    Stealth视频教程学习笔记(第一章) 本文是对Unity官方视频教程Stealth的学习笔记.在此之前,本人整理了Stealth视频的英文字幕,并放到了优酷上.本文将分别对各个视频进行学习总结,提 ...

  3. ThreadStatic应用(Identity补完)

    关于Identity Identity自增序列/唯一断标识 起初做这个东西,是在一个内部组件中,用于在高并发的环境下得到一个较短的“相对”不重复标识字符串;(这里说的相对是指一定的数量下不重复) 灵感 ...

  4. Flash AS实现时钟效果(全脚本实现)

    最近工作中用到个Flash效果,好久没有写FlashAS脚本了,就想从以前写的代码中找一些实例.竟然看到硬盘中还留有若干年前的代码. 这个时钟效果是全部采用脚本实现,图形也是用脚本绘制的.写于2005 ...

  5. bianma 水平 技巧

    能够写出这样的代码, 其实体现了水平 switch (state) { case 0: break; case 3: return; // already connected case 4: stat ...

  6. underscore源码阅读记录

    这几天有大神推荐读underscore源码,趁着项目测试的空白时间,看了一下. 整个underscore包括了常用的工具函数,下面以1.3.3源码为例分析一下. _.size = function(o ...

  7. Atitit.attilax重要案例 项目与解决方案与成果 v6 qa15

    Atitit.attilax重要案例 项目与解决方案与成果 v6 qa15 1. attilax重要案例的分类(atiuse,auBackTech,bizImp)3 1.1. 两个book3 1.2. ...

  8. Java多线程synchronized同步

    非线程安全问题 “非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程问题”.也即是说,方法中的变量永远是线程安全的. 如果多个线程共同访问1个对象中的实例变量,则可能线程 ...

  9. iReport 中使用 Chart 图

    iReport 中使用 Chart 图 SSH2项目中需要引入如下两个jar包: jfreechart-1.0.12.jar jcommon-1.0.15.jar 从 iReport 的安装目录下搜索 ...

  10. KendoUI系列:AutoComplete

    1.基本使用 <link href="@Url.Content("~/C ontent/kendo/2014.1.318/kendo.common.min.css" ...