03-图片浏览器(plist的简单应用)

时间:2023-03-09 20:10:44
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的简单应用)

界面效果图:

03-图片浏览器(plist的简单应用)