iOS-UI篇—简单的浏览器查看程序

 1 #import "ViewController.h"
 2
 3 @interface ViewController ()
 4
 5 @property (retain, nonatomic) NSArray *pic;
 6 @property (assign, nonatomic) NSInteger index;
 7 @property (weak, nonatomic) IBOutlet UILabel *lblIndex;
 8 @property (weak, nonatomic) IBOutlet UILabel *lblTitle;
 9 @property (weak, nonatomic) IBOutlet UIImageView *picture;
10 - (IBAction)nextPicture:(id)sender;
11 @property (weak, nonatomic) IBOutlet UIButton *btnnext;
12
13 - (IBAction)lastPicture:(id)sender;
14 @property (weak, nonatomic) IBOutlet UIButton *btnLast;
15
16 @end
17 @implementation ViewController
18
19
20 - (void)viewDidLoad {
21     [super viewDidLoad];
22     //让第一个图片显示出来,所以先调用一次
23     [self nextPicture:nil];
24 }
25
26 - (void)didReceiveMemoryWarning {
27     [super didReceiveMemoryWarning];
28 }
29
30 // 重写pic属性get方法---懒加载数据
31 - (NSArray *)pic
32 {   /*
33      写代码加载picture.plist文件中的数据到_pic;
34      1.获取picture.plist文件的路径
35      ps:[NSBundle mainBundle]获取这个app安装到手机上时的根目录
36      然后在根目录下搜索picture.plist文件路径
37      */
38     if (_pic == nil) {
39         NSString *string = [[NSBundle mainBundle] pathForResource:@"picture" ofType:@".plist"];
40         NSArray *array = [NSArray arrayWithContentsOfFile:string];
41         //NSLog(@"%@",array);
42
43         _pic = array;
44
45     }
46     return _pic;
47 }
48
49 - (IBAction)nextPicture:(id)sender {
50     //1.让索引自加
51     _index++;
52     //2.从数组中获取当前这张图片的数据
53     NSDictionary *dict = self.pic[self.index-1];
54     //3.把获取到得数据设置给界面上的控件
55     self.lblIndex.text = [NSString stringWithFormat:@"%ld/%ld",self.index,self.pic.count];
56     //4.通过image属性来设置图片框里面的图片
57     self.picture.image =[UIImage imageNamed: dict[@"picture"]];
58
59     self.lblTitle.text = dict[@"title"];
60     //设置“下一张”按钮是否可以点击
61     self.btnnext.enabled =( _index != self.pic.count);
62     //设置“上一张”按钮是否可以点击
63     self.btnLast.enabled =( _index-1 != 0);
64
65 }
66
67 - (IBAction)lastPicture:(id)sender {
68     _index--;
69     NSDictionary *dict = self.pic[self.index-1];
70     self.lblIndex.text = [NSString stringWithFormat:@"%ld/%ld",self.index,self.pic.count];
71     self.picture.image =[UIImage imageNamed: dict[@"picture"]];
72     self.lblTitle.text = dict[@"title"];
73
74     self.btnLast.enabled =( _index-1 != 0);
75     self.btnnext.enabled =( _index != self.pic.count);
76 }
77 @end

开发思路:

1.完成基本功能

2.考虑性能

(1)(初始化操作,可以直接调用change进行)

(2)因为要控制序号和图片两个变量,所以考虑使用字典代替掉switch

(3)每次点击,字典都需要创建一次,效率地下,可以考虑创建的这部分拿到初始化方法中去,这样就只需要创建一次就ok了。

(4)考虑缺点(对代码的顺序要求极其严格)

(5)懒加载(需要的时候才加载,那么什么时候是需要的时候,及调用get方法的时候)

(6)每次都来一下?效率低下—》只有第一次调用get方法时为空,此时实例化并建立数组,其他时候直接返回成员变量(仅仅执行一次)

注意点:

1.方法的调用堆栈(顺序)。

2.使用plist:让数据的操作更加灵活,把数据弄到外面去,解除耦合性,让耦合性不要太强。实际上是一个xml,是苹果定义的一种特殊格式的xml。

3.bundle-包(只读)

时间: 2024-10-12 17:45:50

iOS-UI篇—简单的浏览器查看程序的相关文章

文顶顶 iOS开发UI篇—简单的浏览器查看程序

文顶顶 iOS开发UI篇—简单的浏览器查看程序 iOS开发UI篇—简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边按钮 二.实现基本功能的程序 1 // 2 // YYViewController.m 3 // 03-图片浏览器初步 4 // 5 // Created by apple on 14-5-21. 6 // Co

iOS开发UI篇——简单的浏览器查看程序

一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边按钮 二.实现基本功能的程序 // // YYViewController.m // 03-图片浏览器初步 // // Created by apple on 14-5-21. // Copyright (c) 2014年 itcase. All rights reserved. // #impor

iOS开发UI篇—简单的浏览器查看程序

一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边按钮 二.实现基本功能的程序 1 // 2 // YYViewController.m 3 // 03-图片浏览器初步 4 // 5 // Created by apple on 14-5-21. 6 // Copyright (c) 2014年 itcase. All rights reserve

iOS开发UI基础—简单的浏览器查看程序

iOS开发UI基础-简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 需要读取或修改属性的控件需要设置属性 序号标签 图片 图片描述 左边按钮 右边按钮 (2) 需要监听响应事件的对象,需要添加监听方法 左边按钮 右边按钮 二.实现基本功能的程序 1 // 2 // YYViewController.m 3 // 03-图片浏览器初步 4 // 5 // Created by apple on 14-5-21. 6 // Copyright (c) 2014年 itcas

iOS开发UI篇—简单介绍静态单元格的使用

iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果,有几种方法: (1)可以直接利用代码,返回三组,在判断每组有多少行,展示些什么数据,这样写"死"的代码建议绝不要使用. (2)稍微灵活一些的,可以把plist文件一懒加载的方式,加载到程序中,动态获取.但是观察界面结构,很容易看出这样需要进行模型嵌套,很麻烦. (3)storyboard提

IOS UI篇—UILabel的文字顶部对齐

UILabel的文字顶部对齐 NOV 20TH, 2011 默认UILabel是垂直居中对齐的,如果你的UILabel高度有多行,当内容少的时候,会自动垂直居中. 如下图所示(图片来自stackoverflow): 比较郁闷的是,UILabel并不提供设置其垂直对齐方式的选项.所以如果你想让你的文字顶部对齐,那么就需要自己想办法了. stackoverflow.com 上提供了几种方法来达到顶部对齐的效果. 方法一 在显示文字时,首先计算显示当前的文字需要多宽和多高,然后将对应的UILabel的

IOS ——UI篇—— 自适应UILable高度 或宽 的设置

我们在使用UILable时,在初始化的时候往往都是设置的固定的宽和高,在显示不同长度的文本时达不到我们想要的视觉效果,或者是不能显示完稍长的文本内容,满足不了我们的需求, 我们可以根据文本的长度自动调节lable的高 或 宽 //初始化时设置的size可以随便(此时的size会根据文本的多少自动调节) _titleLable = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, WIDTH, 100)]; _titleLable.textAlignme

IOS ——UI篇—— UISegmentedControl的用法总结

1 //第一种创建方式 2 UISegmentedControl *seg = [[UISegmentedControl alloc]initWithItems:@[@"1",@"2",@"3"]]; 3 seg.frame = CGRectMake(40, 100, 60, 20); 4 5 [seg insertSegmentWithImage:[UIImage imageNamed:@"图片名"] atIndex:4 a

iOS开展UI一片—简单的浏览器观看节目

iOS开发UI篇-简单的浏览器查看程序 一.程序实现要求 1.要求 2. 界面分析 (1) 须要读取或改动属性的控件须要设置属性 序号标签 图片 图片描写叙述 左边button 右边button (2) 须要监听响应事件的对象,须要加入监听方法 左边button 右边button 二.实现基本功能的程序 1 // 2 // YYViewController.m 3 // 03-图片浏览器初步 4 // 5 // Created by apple on 14-5-21. 6 // Copyrigh