03-图片浏览器(plist的简单应用)
ViewController.h文件中:
1 @interface ViewController : UIViewController 2 3 - (IBAction)sliderValueChange:(UISlider *)sender; 4 - (IBAction)setting; 5 - (IBAction)nightMode:(UISwitch *)sender; 6 - (IBAction)imageSizeChange:(UISlider *)sender; 7 8 @property (weak, nonatomic) IBOutlet UIImageView *imageView; 9 @property (weak, nonatomic) IBOutlet UILabel *imageNo; 10 @property (weak, nonatomic) IBOutlet UILabel *imageDesc; 11 @property (weak, nonatomic) IBOutlet UIView *settingView; 12 13 @end
ViewController.m文件中:
1 #import "ViewController.h" 2 3 @interface ViewController () 4 { 5 NSArray *_allDesc; 6 } 7 8 @end 9 10 @implementation ViewController 11 12 #pragma mark 控制器的view加载完毕后会调用一次 13 - (void)viewDidLoad { 14 [super viewDidLoad]; 15 // Do any additional setup after loading the view, typically from a nib. 16 17 // 获取所有的描述(通过解析plist文件来创建数组对象,比如传人文件的全路径) 18 // 如果要访问项目中的资源包里面的所有资源,应该用mainBundle 19 NSBundle *bundle = [NSBundle mainBundle]; 20 // 获取文件的全路径 21 NSString *path = [bundle pathForResource:@"descs" ofType:@"plist"]; 22 // 加载path对应的文件来创建数组(数组变量定义为私有属性) 23 _allDesc = [NSArray arrayWithContentsOfFile:path]; 24 25 _imageDesc.text = _allDesc[0]; 26 27 } 28 29 #pragma mark 控制图片浏览切换 30 - (IBAction)sliderValueChange:(UISlider *)sender { 31 32 // 1.设置中间的图片 33 _imageView.image = [UIImage imageNamed:[NSString stringWithFormat:@"%.f.png", sender.value]]; 34 35 // 2.设置序号(第几张) 36 _imageNo.text = [NSString stringWithFormat:@"%.f/16", sender.value + 1]; 37 38 // 3.设置描述 39 int no = (int)(sender.value + 0.5); //(int)强制转换不进行四舍五入 40 _imageDesc.text = _allDesc[no]; 41 } 42 43 #pragma mark 设置按钮 44 - (IBAction)setting { 45 [UIView beginAnimations:nil context:nil]; 46 [UIView setAnimationDuration:0.5]; 47 48 CGRect tempFrm = _settingView.frame; 49 50 if (tempFrm.origin.y >= self.view.frame.size.height) { 51 tempFrm.origin.y = self.view.frame.size.height - tempFrm.size.height; 52 } 53 else { 54 tempFrm.origin.y = self.view.frame.size.height + tempFrm.size.height; 55 } 56 57 _settingView.frame = tempFrm; 58 59 [UIView commitAnimations]; 60 } 61 62 #pragma mark 夜间模式 63 - (IBAction)nightMode:(UISwitch *)sender { 64 if (sender.on) { 65 self.view.backgroundColor = [UIColor grayColor]; 66 } 67 else { 68 self.view.backgroundColor = [UIColor whiteColor]; 69 } 70 } 71 72 #pragma mark 改变图片大小 73 - (IBAction)imageSizeChange:(UISlider *)sender { 74 75 _imageView.transform = CGAffineTransformMakeScale(sender.value, sender.value); 76 } 77 @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文件内容:
界面效果图: