zoukankan      html  css  js  c++  java
  • swift学习笔记-UI篇之UIImageView

    1.基本使用


    将要使用的图片拖入到项目里,我这里使用的是名为“1.jpg”的图片,然后创建UIImageView,并设置要显示的图片为"1.jpg"
    //1. 基本使用 let imageView = UIImageView(frame: CGRectMake(100, 10, 200, 200)) imageView.image = UIImage(named:"1.jpg") self.view.addSubview(imageView)

    2.UIImageView的用户交互


    UIImageView的用户交互默认是关闭的,也就是说添加到ImageView上的事件都不会响应,需要我们手动设置userInteractionEnabled属性为真,我们给UIImageVIew添加一个点击手势来测试一下,如果注释掉第一行,点击就会失去反应
    //2. 用户交互 imageView.userInteractionEnabled = true let tap = UITapGestureRecognizer(target: self, action: Selector("tapAction:")) imageView.addGestureRecognizer(tap) func tapAction(tap :UITapGestureRecognizer) { let scale :CGFloat = 1.2 var frame = tap.view!.frame frame = CGRectMake(frame.origin.x * scale, frame.origin.y * scale, frame.size.width * scale, frame.size.height * scale) tap.view!.frame = frame }

    3.图片拉伸


    1. 整张图片拉伸
    为了便于区分,我们给self.view一个红色背景,imageView为绿色,同时改变imageView的高度为300。原图尺寸为136 × 94
    //1) 图片整体拉伸 self.view.backgroundColor = UIColor.redColor() imageView.backgroundColor = UIColor.greenColor() var frame = imageView.frame frame = CGRectMake(frame.origin.x, frame.origin.y, frame.size.width, 300) imageView.frame = frame // 设置拉伸模式 /* ScaleToFill: 填充模式,图片不会保持原来的比例 ScaleAspectFit: 图片保持原来的比例,宽度填充,高度自适应 ScaleAspectFill: 图片保持原来的比例,高度填充,宽度自适应 */ imageView.contentMode = UIViewContentMode.ScaleAspectFit


    图片拉伸模式比较


    2. 部分拉伸
    部分拉伸的原理:通过UIEdgeInsets设置拉伸区域,通过减去top、left、bottom、right的距离,得到的中间区域就是拉伸区域。通过平铺拉伸区域或者拉伸拉伸区域来实现部分拉伸。具体计算请看resizableImageWithCapInsets:方法的探析
    //2) 部分拉伸 let imageView2 = UIImageView(frame: CGRectMake(10, 320, 200, 94)) // imageView2.image = UIImage(named: "qipao.png") imageView2.backgroundColor = UIColor.greenColor() self.view.addSubview(imageView2) // 设置拉伸 // stretch:通过拉伸来填充 imageView2.image = UIImage(named: "qipao.png")!.resizableImageWithCapInsets(UIEdgeInsetsMake(52, 40, 36, 64), resizingMode: UIImageResizingMode.Stretch) // tile:通过重复来填充 // imageView2.image = UIImage(named: "qipao.png")!.resizableImageWithCapInsets(UIEdgeInsetsMake(52, 40, 36, 64), resizingMode: UIImageResizingMode.Tile)

    4.图片动画


    先把动画素材导入到项目,创建数组读取图片,再赋值给imageView的animationImages属性,分别设置好动画时间和循环次数后开启动画
    //4. 图片动画 // 创建UIimage数组,数组每个元素为一帧 let animationImages = NSMutableArray() for var i = 1; i <= 40; i++ { let image = UIImage(named: "v(i).jpg") animationImages.addObject(image!) } let array = animationImages as Array as? [UIImage] // 设置animationImages imageView.animationImages = array // 设置动画时间 imageView.animationDuration = 9 // 设置动画循环次数,0为无限循环 imageView.animationRepeatCount = 0 // 开启动画 imageView.startAnimating()

    5.源码下载

    https://github.com/ljcoder2015/SwiftStudyNote/tree/master/swift-UIImageView



    文/ljcoder(简书作者)
    原文链接:http://www.jianshu.com/p/f7fca80a7235
    著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
  • 相关阅读:
    正则表达式-入门初探
    pytorch 对变长序列的处理
    数位DP小结
    impala 使用记录
    2017微软第二场笔试题解
    一次分清:jvm内存结构|jmm|java对象模型
    JMM-java内存模型
    java基础总结
    有关秒杀的一点思考
    Elasticsearch 启动报了TypeError: can’t dup Fixnum 错
  • 原文地址:https://www.cnblogs.com/wanghuaijun/p/5553067.html
Copyright © 2011-2022 走看看