首页 > 其他分享 >IOS开发-UIImageView基本用法

IOS开发-UIImageView基本用法

时间:2023-07-02 16:35:31浏览次数:43  
标签:frame IOS UIImageView 用法 设置 imageView imgview size

UIImageView是iOS中用于显示图像(图片、gif、svg等)的视图。

它的主要功能有:

1. 显示图片
UIImageView可以通过image属性显示一张UIImage类型的图片。可以是本地图片、从网络下载的图片等。

2. 设置填充模式
可以通过contentMode属性设置图片在UIImageView内的显示和填充模式。内容模式有:- scaleToFill:拉伸填充整个imageView
- scaleAspectFit:保持纵横比缩放适应imageView
- scaleAspectFill:保持纵横比缩放填充满imageView
- top、bottom、left、right:拉伸填充指定方向
- center:居中不拉伸显示

3. 设置多种交替动画
可以通过animationImages和animationDuration设置多张图片的交替动画。
或者配置UIImageViewAnimation方式来实现更为复杂的动画。

4. 支持用户交互
UIImageView支持用户交互事件,可以得到点击、拖动等事件。

5. 实现自适应布局
UIImageView支持Auto Layout,可以自动适应不同屏幕尺寸。

1. 创建UIImageView实例:

    UIImageView *imgview = [[UIImageView alloc] init];

2.设置UIImageView的布局信息:

   imgview.frame =CGRectMake((self.view.frame.size.width-100)/2, (self.view.frame.size.height-100)/2, 100, 100);

3. 设置image属性,显示图片:

  imgview.image = [UIImage imageNamed:@"icon"]

这里需要使用UIImage类的imageNamed方法传入图片的名称来生成图片,然后赋给imgview的image属性。

效果图:

 4. 设置contentMode属性,控制图片缩放模式:

imageView.contentMode = UIViewContentModeScaleToFill; // 充满
imageView.contentMode = UIViewContentModeScaleAspectFit; // 完整显示
imageView.contentMode = UIViewContentModeScaleAspectFill; // 完整充满这里不做演示。就是三个枚举只,分别用来设置不同的展示方式

 5. UIImageView设置圆角的方式

  第一种方法:通过设置layer的属性

  最简单的一种,但是很影响性能,一般在正常的开发中使用很少.

 

  //设置圆角
    imgview.layer.cornerRadius = imgview.frame.size.width / 2;
    //将多余的部分切掉
    imgview.layer.masksToBounds = YES;

效果:

 

第二种方法:使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角

 //开始对imageView进行画图
     UIGraphicsBeginImageContextWithOptions(imgview.bounds.size, NO, 1.0);
     //使用贝塞尔曲线画出一个圆形图
     [[UIBezierPath bezierPathWithRoundedRect:imgview.bounds cornerRadius:imgview.frame.size.width] addClip];
     [imgview drawRect:imgview.bounds];
      imgview.image = UIGraphicsGetImageFromCurrentImageContext();
      //结束画图
     UIGraphicsEndImageContext();

第三种方法:使用CAShapeLayer和UIBezierPath设置圆角

首先需要导入<AVFoundation/AVFoundation.h>

 UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imgview.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:imgview.bounds.size];

        CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
        //设置大小
        maskLayer.frame = imgview.bounds;
        //设置图形样子
        maskLayer.path = maskPath.CGPath;
        imgview.layer.mask = maskLayer;
    

效果图:

 

这三种方法中第三种最好,对内存的消耗最少,而且渲染快速

  

标签:frame,IOS,UIImageView,用法,设置,imageView,imgview,size
From: https://www.cnblogs.com/SadicZhou/p/17520929.html

相关文章

  • IOS开发-UIColor的基本用法
    1.使用预定义的系统颜色UIKit框架内预定义了一些常用的颜色,我们可以直接使用:UIColor*redColor=[UIColorredColor];UIColor*blueColor=[UIColorblueColor];UIColor*greenColor=[UIColorgreenColor];UIColor*blackColor=[UIColorblackColor];UIColor......
  • IOS开发-设置UILabel行间距lineSpacing
    1.如何设置UILabel行间距lineSpacing UILabel是没有这么一个直接暴露的属性的,想要修改lineSpacing,我们需要借助NSAttributedString来实现。NSMutableParagraphStyle*style=[NSMutableParagraphStylenew];style.lineSpacing=15;NSMutableDictionary*attribu......
  • IOS开发-实现一个高度自适应的UILabel和一个宽度自适应的UILabel
    1.实现一个高度自适应的UILable思路:UILabel初始化之后,先不要设置他的宽度和高度,等到设置好text属性和font属性之后,根据text的长度以及font的大小来计算UILabel控件的高度//实现一个高度自适应的uilabelUILabel*label2=[[UILabelalloc]init];label2.text=@"xxx......
  • python中globals()的用法
    python中globals()的用法 1.获取所有的全局变量,获取到的内容如下:{'__name__':'__main__','__doc__':None,'__package__':None,'__loader__':<_frozen_importlib_external.SourceFileLoaderobjectat0x7efc4bd1d960>,�......
  • PL/SQL表---table()函数用法
     PL/SQL表---table()函数用法:利用table()函数,我们可以将PL/SQL返回的结果集代替table。simpleexample:1、table()结合数组:*/createorreplacetypet_testasobject(idinteger,rqdate,mcvarchar2(60));createorreplacetypet_test_tableastableo......
  • update-alternatives 的基本用法
    update-alternatives是Ubuntu的软件多版本管理工具,基本用法为,update-alternatives--install<link><name><path><priority>[--force]例如,我要创建一个符号链接/usr/bin/cmake,它指向实际安装路径/usr/local/bin/cmake,则可以使用如下命令,sudoupdate-alternatives......
  • IOS下的微信H5页面的底部前进后退横栏如何隐藏
    header里增加<metaname="viewport"content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no,viewport-fit=cover"/>重点:viewport-fit=cover加上后向下滚动时自动隐藏前进后退横栏,一定程度上解决了遮挡底部的问题,向上滚动后又会出现......
  • JS高级用法:像大神一样玩转JavaScript
    前言众所周知,JavaScript是一种非常流行的编程语言,它已经成为了网页开发的必备技能。但是,在我们从事JavaScript编程的时候,我们却没有完全发掘和利用它的全部潜力。在本文中,我们将分享一些高级的JavaScript技巧,希望帮助掘友们更好地理解和掌握JavaScript编程。关于JS高级用法在学习Ja......
  • Linux中yum和apt-get用法及区别
    Linux中yum和apt-get用法及区别 一般来说著名的linux系统基本上分两大类: 1.RedHat系列:Redhat、Centos、Fedora等 2.Debian系列:Debian、Ubuntu等 RedHat系列 1常见的安装包格式rpm包,安装rpm包的命令是“rpm-参数” 2包管理工具 yum 3支持tar包  Debian系列1常见......
  • axios 合并两个请求
      例子functiongetStaffList(){returnaxios.get('/api/staff');}functiondeptListGet(){returnaxios.get('/api/dept');}axios.all([getStaffList(),deptListGet()]).then(axios.spread(function(staffRes,deptRes){//两......