swift之图片浏览器

系统管理员 2022-08-20 13:16 305阅读 0赞

1、事先准备若干图片。

2、效果图:

Center

3、控件:UIlabel,UIImageView, UIButton

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

Center 1

5、代码如下:

  1. import UIKit
  2. class ViewController: UIViewController {
  3. ///---资源数组
  4. var pic:NSArray!;
  5. ///--索引
  6. var index:Int = 0;
  7. @IBOutlet weak var backBtn: UIButton!
  8. @IBOutlet weak var imageview: UIImageView!
  9. @IBOutlet weak var label: UILabel!
  10. @IBOutlet weak var topLabel: UILabel!
  11. @IBOutlet weak var nextBtn: UIButton!
  12. @IBAction func backBtnClick(sender: AnyObject) {
  13. ///---索引--
  14. index--;
  15. if(index >= 0)
  16. {
  17. if (index == 0)
  18. {
  19. backBtn.enabled = false;
  20. nextBtn.enabled = true;
  21. }
  22. ///---1、从数组中获取当前索引对应的图片数据
  23. let dic = pic[index];
  24. ///---2、将数据设置到控件上
  25. topLabel.text = "\(index+1)/\(pic.count)";
  26. let i = dic["icon"]!;
  27. imageview.image = UIImage(named:"\(i!)");
  28. let s = dic["label"]!;
  29. label.text = "\(s!)";
  30. }
  31. else
  32. {
  33. index = 0;
  34. backBtn.enabled = false;
  35. }
  36. }
  37. override func viewDidLoad() {
  38. super.viewDidLoad()
  39. ///---获取.plist文件路径
  40. let path:String! = (NSBundle.mainBundle()).pathForResource("pic.plist", ofType: nil);
  41. if (path.isEmpty)
  42. {
  43. print("路径为空,没找到文件");
  44. }
  45. else
  46. {
  47. ///---读取文件,先获取数组(plist文件中,root级的类型为ARRAY)
  48. let array = NSArray(contentsOfFile:path!);
  49. // print("path=\(path!)");
  50. // print("array.count = \(array!.count)");
  51. pic = array;
  52. }
  53. ///-----设置启动图像
  54. ///---1、从数组中获取当前索引对应的图片数据
  55. let dic = pic[0];
  56. ///---2、将数据设置到控件上
  57. topLabel.text = "\(1)/\(pic.count)";
  58. let i = dic["icon"]!;
  59. imageview.image = UIImage(named:"\(i!)");
  60. let s = dic["label"]!;
  61. label.text = "\(s!)";
  62. ///---禁用上一个按钮
  63. backBtn.enabled = false;
  64. }
  65. ///---下一张
  66. @IBAction func nextBtnClick(sender: UIButton) {
  67. ///---索引++
  68. index++;
  69. ///---1、从数组中获取当前索引对应的图片数据
  70. let dic = pic[index-1];
  71. ///---2、将数据设置到控件上
  72. topLabel.text = "\(index)/\(pic.count)";
  73. let i = dic["icon"]!;
  74. imageview.image = UIImage(named:"\(i!)");
  75. let s = dic["label"]!;
  76. label.text = "\(s!)";
  77. ///---设置按钮是否可用
  78. nextBtn.enabled = index != pic.count;
  79. backBtn.enabled = index == pic.count;
  80. //
  81. // if (index == pic.count)
  82. // {
  83. // nextBtn.enabled = false;
  84. // }
  85. // else
  86. // {
  87. // nextBtn.enabled = true;
  88. // }
  89. }
  90. override func didReceiveMemoryWarning() {
  91. super.didReceiveMemoryWarning()
  92. // Dispose of any resources that can be recreated.
  93. }
  94. }

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

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

发表评论

表情:
评论列表 (有 0 条评论,305人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Swift基础语法

    分号使用 不用编写main函数,Swift将全局范围内的首句可执行代码作为程序入口 一句代码尾部可以省略分号(;)多句代码写到同一行时必须用分号(;)隔开 用var

    相关 swift反初始化

    [2019独角兽企业重金招聘Python工程师标准>>> ][2019_Python_] ![hot3.png][] 反初始化 在一个类的实例被释放之前,反初始化函数被立即