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. IIS中发布网站的问题

    1.将网站发布到IIS,访问发生如下错误: HTTP 错误 500.21 - Internal Server Error处理程序"PageHandlerFactory-Integr" ...

  2. css自适应宽高等腰梯形

    t1是梯形, ct是梯形里面的内容. 梯形的高度会随着内容的高度撑高.宽度随着浏览器窗口变宽. 梯形上窄下宽或上宽下窄可以通过 transform 的大小来修改. <div class=&quo ...

  3. sql语句中获取datetime的日期部分或时间部分

    sql语句中获取datetime的日期部分 sql语句中 经常操作操作datetime类型数据.今天在写一个存储过程的时候需要将 一个datetime的值的 日期部分提取出来.网上有许多这方面的介绍. ...

  4. C#委托(delegate)

    C#中委托(delegate)是一种安全地封装方法的类型,委托是面向对象的.类型安全的. 使用委托的步骤: 1.声明委托 public delegate void DelegateHandler(st ...

  5. Ubuntu 14.04上安装caffe

    本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...

  6. Nginx配置网站适配PC和手机

    考虑到网站的在多种设备下的兼容性,有很多网站会有手机版和电脑版两个版本.访问同一个网站URL,当服务端识别出用户使用电脑访问,就打开电脑版的页面,用户如果使用手机访问,则会得到手机版的页面. 1.判断 ...

  7. Deep learning:四十五(maxout简单理解)

    maxout出现在ICML2013上,作者Goodfellow将maxout和dropout结合后,号称在MNIST, CIFAR-10, CIFAR-100, SVHN这4个数据上都取得了start ...

  8. iOS_UIImage_Gif的合成

    /** 1. 数据获取 2. 创建Gif文件 3. 配置Gif属性 4. 单帧添加到gif */ github地址: https://github.com/mancongiOS/UIImage.git ...

  9. Android 软件开发之如何使用Eclipse Debug调试程序详解及Eclipse常用快捷键(转)

    1.在程序中添加一个断点如果所示:在Eclipse中添加了一个程序断点 在Eclipse中一共有三种添加断点的方法 第一种: 在红框区域右键出现菜单后点击第一项 Toggle Breakpoint 将 ...

  10. 判断js数据类型和clone

    判断返回js数据类型 function judgeType(arg){//判断返回js数据类型 return Object.prototype.toString.call(arg).slice(8,- ...