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
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文地址:https://www.cnblogs.com/wanghuaijun/p/5553067.html