zoukankan      html  css  js  c++  java
  • UI之UIImageView--属性及用法

      1 // 新建UIImageView 5种方法
      2     // 设置位置及大小、添加图片、添加到视图
      3     UIImageView* image1 = [[UIImageView alloc]init];
      4     image1.frame = CGRectMake(10, 40, 300, 300);
      5     image1.image = [UIImage imageNamed:@"410825"];
      6     [self.view addSubview:image1];
      7     
      8     UIImageView* image2 = [[UIImageView alloc]initWithFrame:CGRectMake(10, 40, 300, 300)];
      9     [image2 setImage:[UIImage imageNamed:@"410825"]];
     10     [self.view addSubview:image2];
     11     
     12     UIImageView* image3 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"410825"]];
     13     image3.frame = CGRectMake(10, 40, 300, 300);
     14     [self.view addSubview:image3];
     15     
     16     // 这种新建,当ImageView的highlighted的属性是YES时,显示的就是参数highlightedImage,一般情况下显示的就是第一个参数UIImage
     17     UIImageView* image4 = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"410825"] highlightedImage:[UIImage imageNamed:@"410825"]];
     18     image4.frame = CGRectMake(10, 40, 300, 300);
     19     [self.view addSubview:image4];
     20     
     21    //  UIImageView* image5 = [[UIImageView alloc]initWithCoder:<#(NSCoder *)#> ];
     22     
     23     
     24     // frame与bounds属性
     25     image4.frame = CGRectMake(10, 40, 300, 300);
     26     // 注意bounds属性的坐标是相对与父视图的左上角来讲的
     27     image4.bounds = CGRectMake(10, 10, 300, 300);
     28     
     29     // 更改UIImageView的位置除了修改frame属性还可以修改center属性
     30     image4.center = CGPointMake(16, 240);
     31     
     32     // transform 形变属性 向x轴y同时轴移动10
     33     image4.transform = CGAffineTransformMakeTranslation(10, 10);
     34     
     35     // 旋转 (以ImageView的中心点也就是center属性表示的位置顺时针旋转90度)
     36     image4.transform = CGAffineTransformRotate(image4.transform, M_PI_2);
     37     
     38     // 缩放图片 (缩放到原来的0.6倍)
     39     image4.transform = CGAffineTransformScale(image4.transform, 0.6, 0.6);
     40     
     41     // 设置图片的显示方式,如居中、居左,是否缩放等,有一下几个常量可供设定:
     42     image4.contentMode = UIViewContentModeBottom;
     43     typedef  enum{
     44         UIViewContentModeBottom, // 底部
     45         UIViewContentModeBottomLeft, // 左下
     46         UIViewContentModeBottomRight, // 右下
     47         UIViewContentModeCenter,  // 中心
     48         UIViewContentModeLeft, // 左边
     49         UIViewContentModeRedraw,  //
     50         UIViewContentModeRight,  // 右边
     51         UIViewContentModeScaleAspectFill,  // 等比
     52         UIViewContentModeScaleAspectFit,  // 不失真(适合)
     53         UIViewContentModeScaleToFill,  // 等比
     54         UIViewContentModeTop, // 上面
     55         UIViewContentModeTopLeft, // 左上
     56         UIViewContentModeTopRight, // 右上
     57     }UIViewContentMode;
     58     /*
     59      注意以上几个常量,凡是没有带Scale的,当图片尺寸超过 ImageView尺寸时,只有部分显示在ImageView中。UIViewContentModeScaleToFill属性会导致图片变形。UIViewContentModeScaleAspectFit会保证图片比例不变,而且全部显示在ImageView中,这意味着ImageView会有部分空白。UIViewContentModeScaleAspectFill也会证图片比例不变,但是是填充整个ImageView的,可能只有部分图片显示出来。
     60      */
     61     
     62     // 显示或隐藏图片
     63     image4.hidden = NO;
     64     
     65     // 设置透明度
     66     image4.alpha = 0.5;
     67     
     68     // 设置高亮时显示的图片
     69     image4.highlightedImage = [UIImage imageNamed:@"410825"];
     70     
     71     // 正常显示图片、
     72     image4.image = [UIImage imageNamed:@"410825"];
     73     
     74     // 设置高亮
     75     image4.highlighted = YES;
     76     
     77     // 将图片尺寸调整为与内容如片相同
     78     // [image4 seizToFit];
     79     
     80     
     81     // 播放一系列图片
     82     NSArray* imagesArray = [NSArray arrayWithObjects:@"图片数组",nil];
     83     image4.animationImages = imagesArray;
     84     // 设定所有的图片在多少秒内播放完毕
     85     image4.animationDuration = [imagesArray count];
     86     // 重复播放次数,0表示无数遍
     87     image4.animationRepeatCount = 0;
     88     // 开始播放
     89     [image4 startAnimating];
     90     
     91     
     92     // 图片不多时,为了效率用这种方法加载图片(图片会放到缓存中,图片多时会造成内存问题)
     93     image1.image = [UIImage imageNamed:@"410825"];
     94     
     95     // 图片多时,用这种方法加载图片(加载本地图片,防止内存问题)
     96     image1.image = [UIImage imageWithContentsOfFile:@"本地图片路径"];
     97     
     98     // 加载网络图片时,用这种方法
     99     image1.image = [UIImage imageWithData:nil]; // date转image // 网络图片路径
    100    //  NSDate* date = [UIImagePNGRepresentation(image对象)];  // image转date
    101     
    102     
    103     // 为图片添加点击事件
    104     // 是否可以和用户交互(一定要先将userInteractionEnable设置为YES,这样才能响应点击事件)
    105     image4.userInteractionEnabled = YES; // 默认是NO(特别)
    106     UITapGestureRecognizer* singleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(tapImageView:)];
    107     [image4 addGestureRecognizer:singleTap];
    108 
    109 
    110  NSArray* _imageName =[NSArray arrayWithObjects:@"少司命",@"少司命2",@"背景",@"背景2",@"背景3",@"素材01",@"素材02",@"素材03",@"素材04",@"素材05", nil];
    111     // 获取数组里指定名称对象的下标
    112     int index = [_imageName indexOfObject:@"素材01"];
    113     NSLog(@"index = %d",index);
    114     
    115      // 获取本地图片
    116     NSArray* arrayjpg =[[NSBundle mainBundle]pathForResource:nil ofType:@"jpg"];
    117     
    118     NSArray* arraypng = [[NSBundle mainBundle]pathForResource:nil ofType:@"png" inDirectory:nil];
    119 
    120     // nil代表全路径
    121     NSArray* array = [[NSBundle mainBundle]pathsForResourcesOfType:@"jpg" inDirectory:nil];
    122     
    123     // 合并
    124     NSArray* a = [arrayjpg arrayByAddingObjectsFromArray:arraypng];
    125     
    126     // 如果上面合并有一项为空的情况下 用 / 分割
    127     NSMutableArray* name = [NSMutableArray array];
    128     for (NSString* path in arraypng) {
    129         NSArray * cap = [path componentsSeparatedByString:@"/"];
    130         [name addObjectsFromArray:cap];
    131     }
    132 
    133 }
    134 -(void)tapImageView:(UIImageView*)sender{
    135     NSLog(@"UIImageView");
    136 }
  • 相关阅读:
    HTTP请求报文
    NSInteger和int分别在什么时候使用
    iOS开发之一些字符串常用的代码
    NSTimer用法
    property 'count' not found on object of type 'NSMutableArray
    详解MAC硬盘中各个文件夹
    如何在Mac下显示Finder中的所有文件
    xcode运行时出现attaching to
    ios sandbox
    使用sqlite存取数据
  • 原文地址:https://www.cnblogs.com/WillingToAsk1946zzh/p/4504463.html
Copyright © 2011-2022 走看看