美文网首页
5.6、UIImageView

5.6、UIImageView

作者: 艾希_可可 | 来源:发表于2018-06-27 11:28 被阅读7次

    import UIKit
    import SDWebImage
    class ViewController: UIViewController {
    let widthScreen = UIScreen.main.bounds.width
    let heightScreen = UIScreen.main.bounds.height
    var aniImageView:UIImageView!
    var mainImageView:UIImageView!
    var isTap:Bool = false
    override func viewDidLoad() {
    super.viewDidLoad()
    // 1,使用图像控件显示图片
    let imageView = UIImageView(frame:CGRect(x:50, y:50, width:200, height:130))
    imageView.image = UIImage.init(named: "可见")
    self.view.addSubview(imageView)
    self.mainImageView = imageView
    //保持图片比例
    //默认 UIImageView 会拉伸图片使其占满整个 UIImageView,如果不想让图片变形,可以将 ContentMode 设置为 Aspect Fit。
    //设置拉伸模式 /* ScaleToFill: 填充模式,图片不会保持原来的比例 ScaleAspectFit: 图片保持原来的比例,宽度填充,高度自适应 ScaleAspectFill: 图片保持原来的比例,高度填充,宽度自适应 */ imageView.contentMode = UIViewContentMode.ScaleAspectFit
    // imageView.contentMode = .scaleAspectFit

        //        2,改变图片
        imageView.image = UIImage.init(named: "pbg")
        //        3,从文件目录中获取图片
        let path = Bundle.main.path(forResource: "可见", ofType: "png")
        let imageData = UIImage(contentsOfFile: path!)
        let newImageVC = UIImageView(image: imageData)
        newImageVC.frame = CGRect(x: 300, y: 50, width: 75, height: 50)
        self.view.addSubview(newImageVC)
        
        //        4,从网络地址获取图片
        //定义URL对象
        let url = URL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg")
        //        //从网络获取数据流
        let data = try! Data(contentsOf: url!)
        //通过数据流初始化图片
        let newImage = UIImage(data: data)
        let imageView3 = UIImageView(image:newImage)
        imageView3.frame = CGRect(x: 50, y: 500, width: 150, height: 100)
        self.view.addSubview(imageView3)
    

    // imageView.sd_setImage(with: NSURL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg")! as URL)
    // imageView.sd_setImage(with: NSURL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg") as URL!)
    // imageView.sd_setImage(with: (NSURL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg")! as URL))
    // imageView.sd_setImage(with: NSURL(string: "http://ww2.sinaimg.cn/bmiddle/632dab64jw1ehgcjf2rd5j20ak07w767.jpg") as URL?)

        //        let img = UIImage(data: data,scale:1.5);  //在这里对图片显示进行比例缩放
        //        let vImg = UIImageView(image: img);
        //        vImg.frame.origin = CGPoint(x:20,y:40);
        //        //vImg.frame = CGRect(x:0,y:20,width:120,height:120);
        //        self.view.addSubview(vImg);
        //        1)如果需要显示app自带的资源文件,可以直接使用UIImage的构造函数:named来直接拉取资源文件。
        //        2)如果要显示本地或者网络资源文件,则需要使用NSData,来拉取对应文件的DATA,最后显示到UIImageView中去。
        //        3)UIImage在构造时,scale的参数需要进一步理解。
        //        4)如果文件尺寸未知的情况下,最好不要对其width和height进行限制。可使用UIView.frame.origin(CGPoint)来指定左上角坐标。同样,也可以单独指定UIView.frame.size来指定CGSize.
        //        5)如果仅指定图像左上角坐标,但又想文件按比例缩放,可以使用vImg的contentMode属性枚举值
        
        
        //        5,使用图像控件实现动画播放
        //        UIImageView 中提供了存储多张图片来创建动画的功能,具体做法是,在 animationImages 属性中设置一个图片数组,然后使用 startAnimating 方法开始动画,最后用 stopAnimating 方法停止动画。同时,使用 animationDuration 属性中可以设置动画每帧切换的速度(秒)。
        
        self.aniImageView = UIImageView()
        self.aniImageView.frame=CGRect(x:50, y:250, width:200, height:150)
        //                //设置动画图片
        self.aniImageView.animationImages = [UIImage(named:"test1")!,UIImage(named:"test2")!,UIImage(named:"test3")!,UIImage(named:"可见")!,UIImage(named:"不可见")!]
        //                //设置每隔1秒变化一次
        self.aniImageView.animationDuration=1
        self.view.addSubview(self.aniImageView)
        self.aniImageView.startAnimating()
        //       6 UIImageView的用户交互默认是关闭的,也就是说添加到ImageView上的事件都不会响应,需要我们手动设置userInteractionEnabled属性为真,我们给UIImageVIew添加一个点击手势来测试一下,如果注释掉第一行,点击就会失去反应
        imageView.isUserInteractionEnabled = true
        let tap = UITapGestureRecognizer(target: self, action:  #selector(tapAction(tap:)))
        imageView.addGestureRecognizer(tap)
    }
    
    @objc func tapAction(tap:UITapGestureRecognizer){
        let small = CGRect(x:50, y:50, width:200, height:130)
        let big = CGRect(x: 0, y: 0, width: widthScreen, height: heightScreen)
        //        if isTap == true {
        //            print("小")
        //            isTap = false
        //            self.mainImageView.frame = small
        //        }else if isTap == false{
        //            print("大")
        //            isTap = true
        //            self.mainImageView.frame = big
        //        }
        isTap = !isTap
        self.mainImageView.frame = isTap ? big : small
    }
    
    
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    

    }

    相关文章

      网友评论

          本文标题:5.6、UIImageView

          本文链接:https://www.haomeiwen.com/subject/jnrbyftx.html