swift之图片浏览器

1、事先准备若干图片。

2、效果图:


3、控件:UIlabel,UIImageView,UIButton

4、建好的pic.plist 文件如下:


5、代码如下:

import UIKit

class ViewController: UIViewController {
    
   
    ///---资源数组
    var pic:NSArray!;
    ///--索引
    var index:Int = 0;

    @IBOutlet weak var backBtn: UIButton!
    @IBOutlet weak var imageview: UIImageView!
    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var topLabel: UILabel!
    
    
    @IBOutlet weak var nextBtn: UIButton!
    
    
    
    @IBAction func backBtnClick(sender: AnyObject) {
        
        ///---索引--
        index--;
        if(index >= 0)
        {
            if (index == 0)
            {
                backBtn.enabled = false;
                nextBtn.enabled = true;
            }
            ///---1、从数组中获取当前索引对应的图片数据
            let dic = pic[index];
            
            ///---2、将数据设置到控件上
            topLabel.text = "\(index+1)/\(pic.count)";
            
            let i = dic["icon"]!;
            imageview.image = UIImage(named:"\(i!)");
            let s = dic["label"]!;
            label.text = "\(s!)";
        }
        else
        {
            index = 0;
            backBtn.enabled = false;
        }
       
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        
        ///---获取.plist文件路径
        let path:String! = (NSBundle.mainBundle()).pathForResource("pic.plist",ofType: nil);
        if (path.isEmpty)
        {
            print("路径为空,没找到文件");
        }
       else
        {
            ///---读取文件,先获取数组(plist文件中,root级的类型为ARRAY)
            let array = NSArray(contentsOfFile:path!);
//            print("path=\(path!)");
//            print("array.count = \(array!.count)");
            pic = array;
        }
        
        ///-----设置启动图像
        ///---1、从数组中获取当前索引对应的图片数据
        let dic = pic[0];
        
        ///---2、将数据设置到控件上
        topLabel.text = "\(1)/\(pic.count)";
        
        let i = dic["icon"]!;
        imageview.image = UIImage(named:"\(i!)");
        let s = dic["label"]!;
        label.text = "\(s!)";
        
        ///---禁用上一个按钮
        backBtn.enabled = false;
    }
    ///---下一张
    
    @IBAction func nextBtnClick(sender: UIButton) {
        
        ///---索引++
        index++;
        
        ///---1、从数组中获取当前索引对应的图片数据
        let dic = pic[index-1];
        
        ///---2、将数据设置到控件上
        topLabel.text = "\(index)/\(pic.count)";
        
        let i = dic["icon"]!;
        imageview.image = UIImage(named:"\(i!)");
        let s = dic["label"]!;
        label.text = "\(s!)";
        
       
        ///---设置按钮是否可用
        nextBtn.enabled = index != pic.count;
        backBtn.enabled = index == pic.count;
//
//        if (index == pic.count)
//        {
//            nextBtn.enabled = false;
//        }
//        else
//        {
//            nextBtn.enabled = true;
//        }
        
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

6、我的做法可能不是最好的, 还请大神指点下。 3Q

7、swift中,NSArray的元素是倒序的。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...