您的位置:首页 > 产品设计 > UI/UE

常用UI控件之UIImageView

2014-04-27 20:21 239 查看
1.UIImageView概述及初始化方法

UIImageView继承于UIView,主要用于在界面上现实图片,图片可以自动适应UIImageView的宽度和高度,而不用修改 分辨率(UIButton也可以自适应大小)
1.1初始化方法:
(1)- (id)initWithImage:(UIImage *)image;
- (id)initWithImage:(UIImage *)image highlightedImage:(UIImage *)highlightedImage (2)也可使用父类初始化方法 -(id)initWithFrame:(CGRect)frame; 示例:
//创建一个图像对象 NSString *imgFilePath = [[NSBundle mainBundle] pathForResource:@"pictrue" ofType:@"jpg"]; UIImage *img = [UIImageimageWithContentsOfFile:imgFilePath]; //或者以下对象方法 // UIImage *img = [[UIImage alloc] initWithContentsOfFile:imgFilePath]; UIImageView *imageView = [[UIImageViewalloc] initWithImage:img];
1.2 UIImageView常用属性 image //设置图片
userInteractionEnabled //用户交互,默认为NO,如果要触发点击事件,需要改为YES(例如添加手势)
animationImages //设置一组动态图片
animationDuration //设置播放一次一组动态图片的时间
animationRepeatCount //设置重复次数startAnimating //开始动画

startAnimating //开始动画
stopAnimating //结束动画

2.手势与UIImageView综合示例:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"狗狗.jpg"]];
imageView.frame = CGRectMake(50, 50, 100, 100);
imageView.center = CGPointMake(160, 240);
[self.view addSubview:imageView];
//打开imageView视图交互,很重要,否则点击图片没反应
imageView.userInteractionEnabled = YES;
self.view = imageView;

UIPinchGestureRecognizer *pinchGestureRecognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(doPinch:)];
[imageView addGestureRecognizer:pinchGestureRecognizer];

- (void)doPinch:(UIPinchGestureRecognizer *)pinchGesture
{
NSLog(@"捏合了");
pinchGesture.view.transform = CGAffineTransformScale(pinchGesture.view.transform, pinchGesture.scale, pinchGesture.scale);
pinchGesture.scale = 1;
}


其他手势方法的重写:

- (void)dotap:(UITapGestureRecognizer *)tapGesture
{
//    tapGesture.view.backgroundColor = [UIColor redColor];
UIImageView *imageView =  (UIImageView *)tapGesture.view;
//    imageView.image = [UIImage imageNamed:@"猫猫.jpg"];
imageView.backgroundColor = [UIColor yellowColor];
}
- (void)doRotation:(UIRotationGestureRecognizer *) rotationGesture
{
NSLog(@"旋转");
rotationGesture.view.transform = CGAffineTransformRotate(rotationGesture.view.transform, rotationGesture.rotation);
rotationGesture.rotation = 1;
}
- (void)doPan:(UIPanGestureRecognizer *)panGesture
{
CGPoint point = [panGesture translationInView:panGesture.view];
NSLog(@"%f ,%f",point.x,point.y);
// 此方法不完美
//    panGesture.view.transform = CGAffineTransformMakeTranslation(point.x, point.y);
panGesture.view.transform = CGAffineTransformTranslate(panGesture.view.transform, point.x, point.y);
[panGesture setTranslation:CGPointZero inView:panGesture.view];
}


3.UIImageView动画与UISlider综合练习(详情见附件)
代码示例:

//初始化Uislider,并设置其参数
UISlider *slider = [[UISlider alloc] initWithFrame:CGRectMake(30, 300, 250, 30)];
slider.value = 10;
slider.maximumValue = 0.5;
slider.minimumValue = 0.1;
[slider addTarget:self action:@selector(doSlider:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview: slider];

//初始化UIImageView
_imgView = [[UIImageView alloc] initWithFrame:CGRectMake(30, 30, 80, 80)];
NSMutableArray * arr = [NSMutableArray arrayWithCapacity:9];
for (int i = 2; i<11; i++)
{
NSString *imgName = [NSString stringWithFormat:@"1-%d(被拖移).tiff",i];
UIImage *image = [UIImage imageNamed:imgName];
[arr addObject:image];
}
//添加UIImageView动态图片
_imgView.animationImages = arr;
//UIImageView重复次数
_imgView.animationRepeatCount = 5;
//UIImageView播放一次一组动态图片的时间
_imgView.animationDuration = slider.value;
[_imgView startAnimating];
[self.view addSubview:_imgView];
//slider方法的实现部分
- (void)doSlider:(UISlider *)slider
{
//先停止动画播放
[_imgView stopAnimating];
//词句很关键,设置播放时间等于slider.value
_imgView.animationDuration = slider.value;
[_imgView startAnimating];
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  常用UI控件
相关文章推荐