03-图片浏览器(plist的简单应用)
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的简单应用)的更多相关文章
- Java实现简单的图片浏览器
第一次写博客,不喜勿喷. 最近一个小师弟问我怎么用Java做图片浏览器,感觉好久没玩Java了,就自己动手做了一下. 学校的教程是用Swing来做界面的,所以这里也用这个来讲. 首先要做个大概的界面出 ...
- 制作一个简单的WPF图片浏览器
原文:制作一个简单的WPF图片浏览器 注:本例选自MSDN样例,并略有改动.先看效果: 这里实现了以下几个功能:1. 对指定文件夹下所有JPG文件进行预览2. 对选定图片进行旋转3. 对选定图片 ...
- android脚步---简单图片浏览器改变图像透明度
图片浏览器调用ImageView的setAlpha方法来实现改变图片透明度. main.xml文件如下:三个按钮,两个imageview,,界面定义了两个ImageView,一个是显示局部图片的Ima ...
- iOS开发系列--无限循环的图片浏览器
--UIKit之UIScrollView 概述 UIKit框架中有大量的控件供开发者使用,在iOS开发中不仅可以直接使用这些控件还可以在这些控件的基础上进行扩展打造自己的控件.在这个系列中如果每个控件 ...
- [Android] 对自定义图片浏览器经常内存溢出的一些优化
首先关于异步加载图片可以参见 夏安明 的博客:http://blog.csdn.net/xiaanming/article/details/9825113 这篇文章最近有了新的更改,大概看了一下,内容 ...
- Android中轴旋转特效实现,制作别样的图片浏览器
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/10766017 Android API Demos中有很多非常Nice的例子,这些例 ...
- XC图片浏览器
XC图片浏览器,这是基于Android4.4开发的一款浏览手机里的图片的浏览器.简单美观实用.欢迎下载. 下载地址:http://download.csdn.net/detail/jczmdevelo ...
- Android:ImageView应用之图片浏览器
ImageView控件实现的简单图片浏览器 一.纯显示图片: 引言: 读者在做这个东西的时候,需要自己把图片在源程序中导入. 读者要注意:所有导入的图片之前,图片的命名只可以是小写英文和数字. 效果图 ...
- iOS 新浪微博-5.3 首页微博列表_集成图片浏览器
实际上,我们可以使用李明杰在教程里集成的MJPhotoBrowser,地址: http://code4app.com/ios/快速集成图片浏览器/525e06116803fa7b0a000001 使用 ...
- iOS:第三方框架MJPhotoBrowser图片浏览器的使用
介绍:MJPhotoBrowser这个第三方库是MJ老师封装的一套用来浏览图片的浏览器,可是是本地图片.网络图片.gif图片等,其也依赖了SDWebImage.SVProgressHUD.YLGIFI ...
随机推荐
- vi命令的使用
<转:http://linux.vbird.org/linux_basic/0310vi.php> 基本上 vi 共分为三种模式,分别是『一般模式』.『编辑模式』与『指令列命令模式』. 圖 ...
- Mysql设置字符编码及varchar宽度问题
ubuntu16.04通过仓库安装的mysql5.7的配置文件在 /etc/mysql/mysql.conf.d/mysqld.cnf 修改字符只需要 在[mysqld] character-set- ...
- JMeter中3种参数值的传递
小伙伴们在使用JMeter的过程中,肯定会遇到参数值传递的问题,下面来和大家总结下,在使用JMeter做压力测试的时候,常见的3种参数值的传递是怎样的. (一)从CSV文件读取要批量输入的变量 假如我 ...
- Java SE 第九讲---面向对象特征之封装1
1.面向对象程序设计的三大基本特征:继承(Inheritence).封装(Encapsulation).多态(Polymorphism) 2.封装:类包含数据与方法,将数据与方法放在一个类中就构成了封 ...
- 单元测试利器之Jtester
http://kiral.iteye.com/blog/900975 名词解释: Junit:众所周知的单元测试. 官方网址:http://junit.sourceforge.net/.Junit从4 ...
- [SQL]insert、update 表触发器应用的demo
--创建测试表 create table student ( stu_id int ,libraryCardNo varchar() ) create table borrowbook ( b_id ...
- linux 多网卡 跃点数
centos6.4 配置两块网卡,eth0设置静态IP,8网段,eth1无线配置dhcp,都是开机启动. 但是eth1无线网卡一旦连接至开放网络(需要web登陆),就替换了之前eth0配置的默认网关, ...
- SGU 194 【带上下界的无源汇的可行流】
题意: 给点数n和边数m. 接下来m条有向边. a b c d 一次代表起点终点,下界上界. 求: 判断是否存在可行流,若存在则输出某可行流.否则输出IMPOSSIBLE 思路: <一种简易的方 ...
- oracle 11g 服务端下载地址及安装说明
oracle 11g 服务端下载地址及安装说明 分类: Oracle 2013-11-17 19:40 988人阅读 ...
- mysql start server faild
可能没卸载干净...在安装mysql数据库时,如果重新安装,很容易遇见apply security setting error,即在配置mysql启动服务时,在启动apply security set ...