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. c#图片上绘制半透明矩形

    p.CreateGraphics().FillRectangle( ,Color.LightGreen)), iLeft, iTop, iRight - iLeft, iBottom - iTop); ...

  2. iOS学习笔记总结整理

    来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...

  3. Jmeter html 报告中添加90% line time

    转载南风_real博客园:http://www.cnblogs.com/jaychang/p/5784882.html 首先上效果图: 其次明白几个原理: 90% Line的意思是:一组数由小到大进行 ...

  4. js中表单提交后按钮变灰色的功能

    表单提交后按钮变成灰色 http://www.111cn.net/wy/js-ajax/45299.htm

  5. 在AE中通过指定中心点和半径画圆

    /// <summary>/// 通过指定的中心点.半径画圆/// </summary>/// <param name="pLayer">要画的 ...

  6. nyoj 93 汉诺塔(三)

    点击打开链接 汉诺塔(三) 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝 ...

  7. ubuntu14.04开启crontab日志

    ubuntu默认没有开启cron日志记录 1. 修改rsyslog sudo vim /etc/rsyslog.d/50-default.conf cron.* /var/log/cron.log # ...

  8. Chapter Data Modification & Chapter Data Validation

    Chapter Data Modification XF的数据提交,支持单行.集合和多层次的master-details结构的数据. Create 当提交如下数据 <Job> <Id ...

  9. MySql存储过程学习总结

    创建存储过程 1.格式   MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]]),举个例子: CREATE PROCEDURE proc1 (OUT s ...

  10. 结束日期必须大于开始日期--My97DatePicker日历控制的又一方便之处

    在做时间查询时,有时需要两个日期,从一个日期到另外一个日期的那种,但是这样会有一个问题,比如后者的结束日期晚于开始日期怎么办?用JS写验证,麻烦,呵呵,用这个日历控件,可方便实现结束日期只显示开始日期 ...