ViewController.h文件中:

 @interface ViewController : UIViewController

 - (IBAction)sliderValueChange:(UISlider *)sender;
- (IBAction)setting;
- (IBAction)nightMode:(UISwitch *)sender;
- (IBAction)imageSizeChange:(UISlider *)sender; @property (weak, nonatomic) IBOutlet UIImageView *imageView;
@property (weak, nonatomic) IBOutlet UILabel *imageNo;
@property (weak, nonatomic) IBOutlet UILabel *imageDesc;
@property (weak, nonatomic) IBOutlet UIView *settingView; @end

ViewController.m文件中:

 #import "ViewController.h"

 @interface ViewController ()
{
NSArray *_allDesc;
} @end @implementation ViewController #pragma mark 控制器的view加载完毕后会调用一次
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. // 获取所有的描述(通过解析plist文件来创建数组对象,比如传人文件的全路径)
// 如果要访问项目中的资源包里面的所有资源,应该用mainBundle
NSBundle *bundle = [NSBundle mainBundle];
// 获取文件的全路径
NSString *path = [bundle pathForResource:@"descs" ofType:@"plist"];
// 加载path对应的文件来创建数组(数组变量定义为私有属性)
_allDesc = [NSArray arrayWithContentsOfFile:path]; _imageDesc.text = _allDesc[]; } #pragma mark 控制图片浏览切换
- (IBAction)sliderValueChange:(UISlider *)sender { // 1.设置中间的图片
_imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%.f.png", sender.value]]; // 2.设置序号(第几张)
_imageNo.text = [NSString stringWithFormat:@"%.f/16", sender.value + ]; // 3.设置描述
int no = (int)(sender.value + 0.5); //(int)强制转换不进行四舍五入
_imageDesc.text = _allDesc[no];
} #pragma mark 设置按钮
- (IBAction)setting {
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5]; CGRect tempFrm = _settingView.frame; if (tempFrm.origin.y >= self.view.frame.size.height) {
tempFrm.origin.y = self.view.frame.size.height - tempFrm.size.height;
}
else {
tempFrm.origin.y = self.view.frame.size.height + tempFrm.size.height;
} _settingView.frame = tempFrm; [UIView commitAnimations];
} #pragma mark 夜间模式
- (IBAction)nightMode:(UISwitch *)sender {
if (sender.on) {
self.view.backgroundColor = [UIColor grayColor];
}
else {
self.view.backgroundColor = [UIColor whiteColor];
}
} #pragma mark 改变图片大小
- (IBAction)imageSizeChange:(UISlider *)sender { _imageView.transform = CGAffineTransformMakeScale(sender.value, sender.value);
}
@end

一、viewDidLoad
1.这是控制器的一个方法
2.当控制器的view创建完毕的时候会调用一次(仅一次)

二、UISlider 滑动块控件
1.value属性可以获得当前的进度值
2.按钮的value发送改变了,会触发UIControlEventValueChanged事件

三、Plist文件的使用
1.加载一个Plist文件的时候,会返回一个plist的根节点对象(Root)

四、NSBundle的使用
1.利用NSBundle可以访问某个资源包的内容
2.如果访问软件中的最主要资源包的内容,应该使用mainBundle
NSBundle *bundle = [NSBundle mainBundle];
3.利用NSBundle获取文件的全路径
NSString *path = [bundle pathForResource:@"descs" ofType:@"plist"];

descs.plist文件内容:

界面效果图:

03-图片浏览器(plist的简单应用)的更多相关文章

  1. Java实现简单的图片浏览器

    第一次写博客,不喜勿喷. 最近一个小师弟问我怎么用Java做图片浏览器,感觉好久没玩Java了,就自己动手做了一下. 学校的教程是用Swing来做界面的,所以这里也用这个来讲. 首先要做个大概的界面出 ...

  2. 制作一个简单的WPF图片浏览器

    原文:制作一个简单的WPF图片浏览器 注:本例选自MSDN样例,并略有改动.先看效果: 这里实现了以下几个功能:1.  对指定文件夹下所有JPG文件进行预览2.  对选定图片进行旋转3.  对选定图片 ...

  3. android脚步---简单图片浏览器改变图像透明度

    图片浏览器调用ImageView的setAlpha方法来实现改变图片透明度. main.xml文件如下:三个按钮,两个imageview,,界面定义了两个ImageView,一个是显示局部图片的Ima ...

  4. iOS开发系列--无限循环的图片浏览器

    --UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...

  5. [Android] 对自定义图片浏览器经常内存溢出的一些优化

    首先关于异步加载图片可以参见 夏安明 的博客:http://blog.csdn.net/xiaanming/article/details/9825113 这篇文章最近有了新的更改,大概看了一下,内容 ...

  6. Android中轴旋转特效实现,制作别样的图片浏览器

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/10766017 Android API Demos中有很多非常Nice的例子,这些例 ...

  7. XC图片浏览器

    XC图片浏览器,这是基于Android4.4开发的一款浏览手机里的图片的浏览器.简单美观实用.欢迎下载. 下载地址:http://download.csdn.net/detail/jczmdevelo ...

  8. Android:ImageView应用之图片浏览器

    ImageView控件实现的简单图片浏览器 一.纯显示图片: 引言: 读者在做这个东西的时候,需要自己把图片在源程序中导入. 读者要注意:所有导入的图片之前,图片的命名只可以是小写英文和数字. 效果图 ...

  9. iOS 新浪微博-5.3 首页微博列表_集成图片浏览器

    实际上,我们可以使用李明杰在教程里集成的MJPhotoBrowser,地址: http://code4app.com/ios/快速集成图片浏览器/525e06116803fa7b0a000001 使用 ...

  10. iOS:第三方框架MJPhotoBrowser图片浏览器的使用

    介绍:MJPhotoBrowser这个第三方库是MJ老师封装的一套用来浏览图片的浏览器,可是是本地图片.网络图片.gif图片等,其也依赖了SDWebImage.SVProgressHUD.YLGIFI ...

随机推荐

  1. mac下使用github

    提起github相信大家都不会陌生,在这里就不再赘述了.作为开源代码库以及版本控制系统,使用好了确实会非常受益,再说的势利点,你找工作时给面试官说你经常维护自己的技术博客和github,相信你给他的印 ...

  2. 101、使用ContentProvider在应用间传递数据

    [ContentWriter] package com.jikexueyuan.contentwriter; import android.content.ContentProvider; impor ...

  3. JAVASE 打印输出--------01

    public class Demo01 { public String a1; public int a2; public Demo01(String a, int i) { a1 = a; a2 = ...

  4. 01.base-v1.js

    /* Date: 2014-01-21 */ function login() { return location.href = "https://passport.jd.com/new/l ...

  5. JAVA继承时this和super关键字

    JAVA继承时this和super关键字 本文主要讨论在方法前使用this或super关键字时,编译器在什么地方查找对应的函数. 在子类中指定this关键字.首先在本类中查找,如果本类中找不到,再在父 ...

  6. wall 和panel有啥区别

    Panel指的是一个面板,用它来对一些控件进行分组,就像组合框控件,即Visual Studio里面用的Group Box Control:而在一些软件界面里面也可以表现为工具条,比如编辑工具条.文件 ...

  7. SelectedValue 失效

    /// <summary> /// 绑定代表下拉选项 /// </summary> public void BindOwnerDataII(string unitId, str ...

  8. Mingyang.net:No identifier specified for entity

    org.hibernate.AnnotationException: No identifier specified for entity: net.mingyang.modules.system.C ...

  9. Android中通过广播方式调起第三方App

    今天紧急的跟进一个百度视频App无法调起百度贴吧App的问题,当然,这个是只发现是在4.x的android系统下发生,在2.x版本下,一切正常,(其实是3.1及以上的版本都有问题)具体场景为: 1.贴 ...

  10. (转)Mysql 安装与卸载

    这几天准备研究一下Mysql,首先想到的是安装和卸载---因为一直使用的SqlServer卸载太麻烦了,于是尝试了安装与卸载. 原文链接 :http://jingyan.baidu.com/artic ...