- 浏览: 141962 次
- 性别:
- 来自: 北京
文章分类
最新评论
【转】http://my.oschina.net/plumsoft/blog/76128
1、创建一个UIImageView:
创建一个UIImageView对象有五种方法:
UIImageView *imageView1 = [[UIImageView alloc] init];
UIImageView *imageView2 = [[UIImageView alloc] initWithFrame:(CGRect)];
UIImageView *imageView3 = [[UIImageView alloc] initWithImage:(UIImage *)];
UIImageView *imageView4 = [[UIImageView alloc] initWithImage:(UIImage *) highlightedImage:(UIImage *)];
UIImageView *imageView5 = [[UIImageView alloc] initWithCoder:(NSCoder *)];
比较常用的是前边三个。至于第四个,当这个ImageView的highlighted属性是YES时,显示的就是参数highlightedImage,一般情况下显示的是第一个参数UIImage。
2、frame与bounds属性:
上述创建一个UIImageView的方法中,第二个方法是在创建时就设定位置和大小。
当之后想改变位置时,可以重新设定frame属性:
imageView.frame = CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat heigth);
注意到UIImageView还有一个bounds属性
imageView.bounds = CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat heigth);
那么这个属性跟frame有什么区别呢?
我的理解是,frame设置其位置和大小,而bounds只能设置其大小,其参数中的x、y不起作用即便是之前没有设定frame属性,控件最终的位置也不是bounds所设定的参数。bounds实现的是将UIImageView控件以原来的中心为中心进行缩放。例如有如下代码:
imageView.frame = CGRectMake(0, 0, 320, 460);
imageView.bounds = CGRectMake(100, 100, 160, 230);
执行之后,这个imageView的位置和大小是(80, 115, 160, 230)。
3、contentMode属性:
这个属性是用来设置图片的显示方式,如居中、居右,是否缩放等,有以下几个常量可供设定:
UIViewContentModeScaleToFill
UIViewContentModeScaleAspectFit
UIViewContentModeScaleAspectFill
UIViewContentModeRedraw
UIViewContentModeCenter
UIViewContentModeTop
UIViewContentModeBottom
UIViewContentModeLeft
UIViewContentModeRight
UIViewContentModeTopLeft
UIViewContentModeTopRight
UIViewContentModeBottomLeft
UIViewContentModeBottomRight
注意以上几个常量,凡是没有带Scale的,当图片尺寸超过 ImageView尺寸时,只有部分显示在ImageView中。UIViewContentModeScaleToFill属性会导致图片变形。UIViewContentModeScaleAspectFit会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白。UIViewContentModeScaleAspectFill也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示出来。
前三个效果如下图:
UIViewContentModeScaleToFill UIViewContentModeScaleAspectFit UIViewContentModeScaleAspectFill
4、更改位置
更改一个UIImageView的位置,可以
4.1 直接修改其frame属性
4.2 修改其center属性:
imageView.center = CGPointMake(CGFloat x, CGFloat y);
center属性指的就是这个ImageView的中间点。
4.3 使用transform属性
imageView.transform = CGAffineTransformMakeTranslation(CGFloat dx, CGFloat dy);
其中dx与dy表示想要往x或者y方向移动多少,而不是移动到多少。
5、旋转图像
imageView.transform = CGAffineTransformMakeRotation(CGFloat angle);
要注意它是按照顺时针方向旋转的,而且旋转中心是原始ImageView的中心,也就是center属性表示的位置。
这个方法的参数angle的单位是弧度,而不是我们最常用的度数,所以可以写一个宏定义:
#define degreesToRadians(x) (M_PI*(x)/180.0)
用于将度数转化成弧度。下图是旋转45度的情况:
6、缩放图像
还是使用transform属性:
imageView.transform = CGAffineTransformMakeScale(CGFloat scale_w, CGFloat scale_h);
其中,CGFloat scale_w与CGFloat scale_h分别表示将原来的宽度和高度缩放到多少倍,下图是缩放到原来的0.6倍的示意图:
7、播放一系列图片
imageView.animationImages = imagesArray;
// 设定所有的图片在多少秒内播放完毕
imageView.animationDuration = [imagesArray count];
// 不重复播放多少遍,0表示无数遍
imageView.animationRepeatCount = 0;
// 开始播放
[imageView startAnimating];
其中,imagesArray是一些列图片的数组。如下图:
8、为图片添加单击事件:
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImageView:)];
[imageView addGestureRecognizer:singleTap];
一定要先将userInteractionEnabled置为YES,这样才能响应单击事件。
9、其他设置
imageView.hidden = YES或者NO; // 隐藏或者显示图片
imageView.alpha = (CGFloat) al; // 设置透明度
imageView.highlightedImage = (UIImage *)hightlightedImage; // 设置高亮时显示的图片
imageView.image = (UIImage *)image; // 设置正常显示的图片
[imageView sizeToFit]; // 将图片尺寸调整为与内容图片相同
1、创建一个UIImageView:
创建一个UIImageView对象有五种方法:
UIImageView *imageView1 = [[UIImageView alloc] init];
UIImageView *imageView2 = [[UIImageView alloc] initWithFrame:(CGRect)];
UIImageView *imageView3 = [[UIImageView alloc] initWithImage:(UIImage *)];
UIImageView *imageView4 = [[UIImageView alloc] initWithImage:(UIImage *) highlightedImage:(UIImage *)];
UIImageView *imageView5 = [[UIImageView alloc] initWithCoder:(NSCoder *)];
比较常用的是前边三个。至于第四个,当这个ImageView的highlighted属性是YES时,显示的就是参数highlightedImage,一般情况下显示的是第一个参数UIImage。
2、frame与bounds属性:
上述创建一个UIImageView的方法中,第二个方法是在创建时就设定位置和大小。
当之后想改变位置时,可以重新设定frame属性:
imageView.frame = CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat heigth);
注意到UIImageView还有一个bounds属性
imageView.bounds = CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat heigth);
那么这个属性跟frame有什么区别呢?
我的理解是,frame设置其位置和大小,而bounds只能设置其大小,其参数中的x、y不起作用即便是之前没有设定frame属性,控件最终的位置也不是bounds所设定的参数。bounds实现的是将UIImageView控件以原来的中心为中心进行缩放。例如有如下代码:
imageView.frame = CGRectMake(0, 0, 320, 460);
imageView.bounds = CGRectMake(100, 100, 160, 230);
执行之后,这个imageView的位置和大小是(80, 115, 160, 230)。
3、contentMode属性:
这个属性是用来设置图片的显示方式,如居中、居右,是否缩放等,有以下几个常量可供设定:
UIViewContentModeScaleToFill
UIViewContentModeScaleAspectFit
UIViewContentModeScaleAspectFill
UIViewContentModeRedraw
UIViewContentModeCenter
UIViewContentModeTop
UIViewContentModeBottom
UIViewContentModeLeft
UIViewContentModeRight
UIViewContentModeTopLeft
UIViewContentModeTopRight
UIViewContentModeBottomLeft
UIViewContentModeBottomRight
注意以上几个常量,凡是没有带Scale的,当图片尺寸超过 ImageView尺寸时,只有部分显示在ImageView中。UIViewContentModeScaleToFill属性会导致图片变形。UIViewContentModeScaleAspectFit会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白。UIViewContentModeScaleAspectFill也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示出来。
前三个效果如下图:
UIViewContentModeScaleToFill UIViewContentModeScaleAspectFit UIViewContentModeScaleAspectFill
4、更改位置
更改一个UIImageView的位置,可以
4.1 直接修改其frame属性
4.2 修改其center属性:
imageView.center = CGPointMake(CGFloat x, CGFloat y);
center属性指的就是这个ImageView的中间点。
4.3 使用transform属性
imageView.transform = CGAffineTransformMakeTranslation(CGFloat dx, CGFloat dy);
其中dx与dy表示想要往x或者y方向移动多少,而不是移动到多少。
5、旋转图像
imageView.transform = CGAffineTransformMakeRotation(CGFloat angle);
要注意它是按照顺时针方向旋转的,而且旋转中心是原始ImageView的中心,也就是center属性表示的位置。
这个方法的参数angle的单位是弧度,而不是我们最常用的度数,所以可以写一个宏定义:
#define degreesToRadians(x) (M_PI*(x)/180.0)
用于将度数转化成弧度。下图是旋转45度的情况:
6、缩放图像
还是使用transform属性:
imageView.transform = CGAffineTransformMakeScale(CGFloat scale_w, CGFloat scale_h);
其中,CGFloat scale_w与CGFloat scale_h分别表示将原来的宽度和高度缩放到多少倍,下图是缩放到原来的0.6倍的示意图:
7、播放一系列图片
imageView.animationImages = imagesArray;
// 设定所有的图片在多少秒内播放完毕
imageView.animationDuration = [imagesArray count];
// 不重复播放多少遍,0表示无数遍
imageView.animationRepeatCount = 0;
// 开始播放
[imageView startAnimating];
其中,imagesArray是一些列图片的数组。如下图:
8、为图片添加单击事件:
imageView.userInteractionEnabled = YES;
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapImageView:)];
[imageView addGestureRecognizer:singleTap];
一定要先将userInteractionEnabled置为YES,这样才能响应单击事件。
9、其他设置
imageView.hidden = YES或者NO; // 隐藏或者显示图片
imageView.alpha = (CGFloat) al; // 设置透明度
imageView.highlightedImage = (UIImage *)hightlightedImage; // 设置高亮时显示的图片
imageView.image = (UIImage *)image; // 设置正常显示的图片
[imageView sizeToFit]; // 将图片尺寸调整为与内容图片相同
发表评论
-
Foundation和UIKit框架组织图
2013-01-28 08:58 6185... -
[转]linux常用命令
2013-01-26 22:33 893本文来自于http://blog.csdn.net/totog ... -
[转] NSString 控件消息
2013-01-19 15:52 1061【转】http://www.tongwenguan.com/o ... -
关闭arc
2013-01-17 22:35 04.2前的xcode中,打开“Build Setting”,找 ... -
地址薄源码分析
2013-01-17 10:13 1640ContactViewController.h 头文件 #im ... -
iOS main函数 机器码
2013-01-17 07:24 2498main 启动对应机器码分析 0x2730: pushl ... -
歌曲源码剪切分析
2013-01-16 17:19 7579mian.m 以及appdelegate就不说了,主要说说C控 ... -
[转]深入理解Objective-c中@class的含义
2013-01-16 07:16 1040[转]http://blog.prosight.me/i ... -
isKindOfClass<> isMemberOfClass[转]
2013-01-15 10:27 0转http://blog.csdn.net/totogo201 ... -
NSString 截取,文件读取【转】
2013-01-16 07:18 1530【转】http://www.cnblogs.com/csj00 ... -
loadNibNamed
2013-01-15 10:05 0动态加载,就是在程序运行当中,根据需要动态地加载一些视图,常常 ... -
respondsToSelector
2013-01-15 09:31 2514respondsToSelector该方法询问对象以确定其是否 ... -
initWithFrame<>initWithCoder
2013-01-15 09:19 1766initWithFrame 和 initWithCode ... -
协议protocol
2013-01-16 07:17 1087自定义协议语法如下: @protocol 协议名称 方法之声明 ... -
addSubview<>insertSubView
2013-01-15 08:35 3561addSubview是一层一层往上加,新加的只能放到父视图的最 ... -
UIViewController生命周期[转]
2013-01-15 00:09 974转http://www.cnblogs.com/smileEv ... -
IBOutlet IBaction 详解
2013-01-14 23:33 4372IBOutlet对于编译器而言只是一个标记,也就是 ... -
AppDelegate.m 介绍
2013-01-14 22:59 6618【转】[url] www.cnblogs.com/xunzi ... -
didReceiveMemoryWarning
2013-01-14 21:52 5595[转]http://blog.csdn.net/yy404 ... -
OC-plist xib pch StoryBoard
2013-01-14 21:12 1231plist plist文件是什么呢? 它全名是: ...
相关推荐
在iOS开发中,UIImageView是用于显示图像的常见控件,它在用户界面设计中起着至关重要的作用。当你需要在应用中展示图片时,UIImageView是你首选的工具。然而,有时我们可能需要对UIImageView中的图像进行旋转操作,...
通过给继承与 UIImageView 的类 CXGImageView 添加 CABasicAnimation 转动动画,实现播放器图片转动效果.
### UIImageView 深入解析 #### 一、UIImageView 基本概念与初始化 `UIImageView` 是 iOS 中用于展示图像的视图控件。在 iOS 应用开发中,经常需要用到 `UIImageView` 来显示静态图像或动画效果。`UIImageView` ...
在iOS开发中,UIImageView是用于显示图像的常见控件,它可以是应用界面中的图标、背景图片等。在某些场景下,我们可能需要为UIImageView添加动画效果,以增加用户体验的趣味性和交互性。本知识点主要围绕UIImageView...
为了实现在UIImageView上展示GIF动画,开发者通常会借助第三方库,比如本例中提到的`SDWebImage`。`SDWebImage`是一个非常流行且功能强大的图片加载库,它不仅支持从网络加载图片,还提供了缓存机制和处理各种图片...
在给定的资源"ios-UIImageView加载SVG格式的图片.zip"中,包含了一个名为"SVGProject"的示例项目,它可能是一个简单的iOS应用,演示了如何在UIImageView中加载并显示SVG图像。这个项目可以作为学习如何在iOS应用中...
在iOS开发中,`UIImageView`是用于展示图片的常用组件,而手势识别(Gesture Recognizers)则为用户交互提供了丰富的可能性。本篇文章将深入探讨`UIImageView`与手势API的结合使用,帮助开发者创建更具交互性的iOS...
《Swift实现全屏缩放的UIImageView扩展:EEZoomableImageView》 在iOS应用开发中,经常需要处理图像的展示,特别是在需要用户提供图片或者查看详细图片时。为了提供更好的用户体验,通常会希望图片能够进行全屏缩放...
在iOS开发中,UIImageView是用于显示图像的常见控件,而手势识别则为与用户交互提供了丰富的可能性。本文将深入探讨如何在UIImageView中添加和使用各种手势,包括点击、拖动、旋转和缩放。 首先,我们要引入手势...
在iOS应用开发中,UIImageView是显示图像的基本控件,它用于加载、展示静态图片。而题目中的"使用UIImageView实现的橡皮擦类"是一个扩展,它使得UIImageView不仅可以展示图片,还可以实现橡皮擦功能,允许用户擦除...
本话题涉及的"UIImageView+FHXExtension.zip"是一个OC的扩展,为UIImageView类添加了额外的功能,方便开发者更高效地处理图像显示。下面我们将详细探讨这个扩展中的知识点。 首先,"UIImageView+FHXExtension"这种...
在iOS开发中,UIImageView是用于展示图像的UI控件,它可以是应用界面中不可或缺的部分。在Objective-C中,我们可以通过多种方式创建并操作UIImageView。以下是对UIImageView常用操作的详细讲解: 1. **创建...
在iOS开发中,UIImageView是我们常用的一个组件,用于显示静态图片。然而,当需要实现复杂的图片动画效果时,UIImageView的单一功能就显得力不从心了。为此,开发者们创造了许多扩展,其中UIImageViewAnimator就是一...
在iOS开发中,UIImageView是用于显示图像的常见控件,但它并不只是静态地展示图片,还可以通过一组内置的动画方法实现简单的动画效果。这些方法可以让开发者轻松地创建一些基础的过渡或循环效果,无需深入Core ...
它提供了一个可拉伸、可旋转的UIImageView和UILabel,非常适合用在UITableView的单元格或是视图中展示订单或交易的状态。 首先,我们来详细探讨UIImageView的拉伸与旋转功能。UIImageView是iOS中用来显示图像的类,...
它通过使用`UIImageView`这一UI组件,来实现图片的动态旋转效果。关键代码位于`FVImageSequence.m`文件中,该文件是实现旋转功能的核心部分。 在iOS开发中,`UIImageView`是苹果提供的一个视图类,主要用于显示静态...
1. **UIImageView**:在iOS中,UIImageView是用于显示图像的UI控件。它是实现图片旋转的基础。首先,我们需要创建一个UIImageView实例,并将需要旋转的图片设置为其image属性。 2. **CADisplayLink**:...
对于转盘上的每个选项,可以创建对应的UILabel或者UIImageView,并将其添加到转盘视图上。布局时需确保每个选项在旋转过程中都能正确显示。 五、交互逻辑 在转盘停止时,需要处理选中项的逻辑。这可能涉及到回调...
1. **创建UIImageView对象**:首先,需要创建一个UIImageView实例,并设置其frame来确定在屏幕上的位置和大小。这个UIImageView将用来显示旋转的加载图标。 ```objc UIImageView *loadingImageView = [[UIImageView...