IOS开发-UIImageView的使用-UIImageView与UIButton的区别
2015-05-06 18:03
513 查看
一.概述:
UIImageView根据名字可以知道就是用来显示图片的,本文主要总结了三个知识点
1.使用UIImageView显示图片的常用的几种方式
2.UIImageView与UIButton的区别
二. 使用UIImageView显示图片的常用的几种方式
1》》》》创建UIImageView对象的几种方式。
1. UIImageView *icon1 = [[UIImageView alloc] init];创建没有初始化的UIImageView对象
2.UIImageView *icon2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"fuguizhu"]];
创建已经初始化图片的UIImageView对象,但需要设置尺寸及位置才可以显示。
3.UIImageView *icon3 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0,300, 400)];
创建已经初始化了位置和尺寸的UIImageView对象,需要设置要显示的图片
4.- (instancetype)initWithImage:(UIImage *)image highlightedImage:(UIImage *)highlightedImage
创建已经初始化了默认状态和高亮状态要显示的图片的UIImageView对象,当highlighted属性为YES时显示highlightedImage 图片。
上面四种方式显示效果如下图,前三种是相同的,第四种由于打开了highlighted所以显示了另外一张图片
2》》》UIImageView控件的contentMode属性:
这个属性是设置图片在手机中显示方式,比如是否居中、是否拉伸等对应storyboard中的右侧的视图如下:
此属性的取值通常如下:
上面枚举常量中,不带Scale的常量值表示,当图片的尺寸超过了UIImageView设定的尺寸时之后显示一部分。
UIViewContentModeScaleToFill:会填充整个UIImageView区域,会导致图片产生形变除非设定的范围和图片的比例一样。默认是此值。
UIViewContentModeScaleAspectFit:会保证图片的比例不变全部显示在UIImageView区域但是会出现空白区域。
UIViewContentModeScaleAspectFill:综合以上两者,即全部填充UIImageView区域也不会产生比例的变化,这样就意味着,不会显示完全.
UIViewContentModeScaleToFill UIViewContentModeScaleAspectFit UIViewContentModeScaleAspectFill
2.UIImageView与UIButton的区别
我们知道UIImageView与UIButton都能显示图片
1)UIButton能够监听点击事件而UIImageView不能。
原因:UIButton之所以能够添加监听器是因为他继承自UIControl反之只要是继承自UIControl的类都能添加监听事件,UIControl的类里面有个添加监听事件的方法:
UIImageView不能添加事件因为它直接继承自最纯洁的UIView。
2)UIButton既能显示文字又能显示图片,而UIImageView只能显示图片。
看UIButton的两个属性:
UIButton里面包含了UILabel和UIImageView,他们一个能显示文字一个可现实图片。
3. UIImageView与UIButton的使用场合
UIButton:需要显示图片,点击图片后需要做一些特定的操作
UIImageView:仅仅需要显示图片,点击图片后不需要做任何事
UIImageView根据名字可以知道就是用来显示图片的,本文主要总结了三个知识点
1.使用UIImageView显示图片的常用的几种方式
2.UIImageView与UIButton的区别
二. 使用UIImageView显示图片的常用的几种方式
1》》》》创建UIImageView对象的几种方式。
1. UIImageView *icon1 = [[UIImageView alloc] init];创建没有初始化的UIImageView对象
// 方式1 UIImageView *icon1 = [[UIImageView alloc] init]; // 设置位置 icon1.frame = CGRectMake(0, 0, 375, 667); // setImage设置图片 [icon1 setImage:[UIImage imageNamed:@"ping"]]; [self.view addSubview:icon1];
2.UIImageView *icon2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"fuguizhu"]];
创建已经初始化图片的UIImageView对象,但需要设置尺寸及位置才可以显示。
UIImageView *icon2 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ping"]]; // 设置位置及尺寸 icon2.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height); [self.view addSubview:icon2];
3.UIImageView *icon3 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0,300, 400)];
创建已经初始化了位置和尺寸的UIImageView对象,需要设置要显示的图片
UIImageView *icon3 = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; // setImage设置图片 [icon3 setImage:[UIImage imageNamed:@"ping"]]; [self.view addSubview:icon3];
4.- (instancetype)initWithImage:(UIImage *)image highlightedImage:(UIImage *)highlightedImage
创建已经初始化了默认状态和高亮状态要显示的图片的UIImageView对象,当highlighted属性为YES时显示highlightedImage 图片。
UIImageView *icon4 = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"ping"] highlightedImage:[UIImage imageNamed:@"fuguizhu"]]; // 设置位置 icon4.frame = CGRectMake(0, 0, 375, 667); //显示高亮状态的图片 icon4.highlighted = YES; [self.view addSubview:icon4];
上面四种方式显示效果如下图,前三种是相同的,第四种由于打开了highlighted所以显示了另外一张图片
2》》》UIImageView控件的contentMode属性:
这个属性是设置图片在手机中显示方式,比如是否居中、是否拉伸等对应storyboard中的右侧的视图如下:
此属性的取值通常如下:
typedef NS_ENUM(NSInteger, UIViewContentMode) { UIViewContentModeScaleToFill, UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is transparent UIViewContentModeScaleAspectFill, // contents scaled to fill with fixed aspect. some portion of content may be clipped. UIViewContentModeRedraw, // redraw on bounds change (calls -setNeedsDisplay) UIViewContentModeCenter, // contents remain same size. positioned adjusted. UIViewContentModeTop, UIViewContentModeBottom, UIViewContentModeLeft, UIViewContentModeRight, UIViewContentModeTopLeft, UIViewContentModeTopRight, UIViewContentModeBottomLeft, UIViewContentModeBottomRight, };
上面枚举常量中,不带Scale的常量值表示,当图片的尺寸超过了UIImageView设定的尺寸时之后显示一部分。
UIViewContentModeScaleToFill:会填充整个UIImageView区域,会导致图片产生形变除非设定的范围和图片的比例一样。默认是此值。
UIViewContentModeScaleAspectFit:会保证图片的比例不变全部显示在UIImageView区域但是会出现空白区域。
UIViewContentModeScaleAspectFill:综合以上两者,即全部填充UIImageView区域也不会产生比例的变化,这样就意味着,不会显示完全.
UIViewContentModeScaleToFill UIViewContentModeScaleAspectFit UIViewContentModeScaleAspectFill
2.UIImageView与UIButton的区别
我们知道UIImageView与UIButton都能显示图片
1)UIButton能够监听点击事件而UIImageView不能。
原因:UIButton之所以能够添加监听器是因为他继承自UIControl反之只要是继承自UIControl的类都能添加监听事件,UIControl的类里面有个添加监听事件的方法:
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents;
UIImageView不能添加事件因为它直接继承自最纯洁的UIView。
2)UIButton既能显示文字又能显示图片,而UIImageView只能显示图片。
看UIButton的两个属性:
@property(nonatomic,readonly,retain) UILabel *titleLabel NS_AVAILABLE_IOS(3_0); @property(nonatomic,readonly,retain) UIImageView *imageView NS_AVAILABLE_IOS(3_0);
UIButton里面包含了UILabel和UIImageView,他们一个能显示文字一个可现实图片。
3. UIImageView与UIButton的使用场合
UIButton:需要显示图片,点击图片后需要做一些特定的操作
UIImageView:仅仅需要显示图片,点击图片后不需要做任何事
相关文章推荐
- 【iOS开发-46】利用UIButton和UIImageView的区别分辨哪些控件有addTarget监听事件这个方法
- iOS开发利用UIButton和UIImageView的区别分辨哪些控件有addTarget监听事件这个方法
- IOS开发学习笔记024-UIButton和UIImageView的区别
- iOS开发——UIButton和UIImageView的对比
- IOS开发基础—通过Tom猫实例学习uiimageview的基本使用
- 程序猿之路-----学习MJ视频总结1---UIImageView和UIButton的区别 、iOS懒加载
- 程序猿之路-----学习MJ视频总结1---UIImageView和UIButton的区别 、iOS懒加载
- iOS中ui单列模式 uibutton和uiimageview 的区别
- iOS开发——UI基础-UIButton、UIImageView、UILabel的选择
- iOS开发——UI基础-UIImage,UIImageView的使用
- ios-day02(NSBundle的作用、UIImageView和UIButton的区别)
- 【iOS开发】关于显示一连串图片组成动画效果UIImageView的使用
- iOS开发的一些小技术:让UIImage有缩放功能、控制log的输出、xcode修改文件注释、随机数的使用、在UIImageView 中旋转图像、在Quartz中如何设置旋转点、创建.plist文件并存储
- iOS开发之六:常用控件--UIImageView的使用
- iOS开发之六:常用控件--UIImageView的使用
- iOS程序-UIButton和UIImageView的区别
- 学习IOS开发UI篇--UIView\UIButton\UILabel\UIImageView\UITextField
- 【iOS开发-58】tableView初识:5个重要方法的使用和2种样式的区别
- [iOS基础控件 - 3.5] NSBundle, UIImageView和UIButton的区别, 模拟器和文档
- IOS开发之UI设计---视图交互与事件(UIButton,UIImage,UIImageView,UIController)