一、程序实现要求

1.要求

2. 界面分析

(1) 需要读取或修改属性的控件需要设置属性

序号标签

图片

图片描述

左边按钮

右边按钮

(2) 需要监听响应事件的对象,需要添加监听方法

左边按钮

右边按钮

3.一些新的属性与方法

3.1

UILabel *headlab=[[UILabel alloc]initWithFrame:CGRectMake(20, 10, 300, 30)];38     39   // [headlab setText:@"1/5"];40     [headlab setTextAlignment:NSTextAlignmentCenter];  //文字居中41     [headlab setTextColor:[UIColor blackColor]];

3.2
//控制按钮的点击,如果为5则右键失效,如果为1,则左键失效
126     self.leftbtn.enabled=(self.i!=0);
127     self.rightbtn.enabled=(self.i!=4);

3.3
 //array的get方法
161 -(NSArray *)array
162 {
163     NSLog(@"需要获取数组");
164     //只实例化一次
165     if (_array==nil) {
166         NSLog(@"实例化数组");
167         NSDictionary *dict1=@{@"name": @"biaoqingdi",@"desc":@"什么表情都弱爆了!"};
168         NSDictionary *dict2=@{@"name": @"bingli",@"desc":@"病例"};
169         NSDictionary *dict3=@{@"name": @"wangba",@"desc":@"乌龟"};
170         NSDictionary *dict4=@{@"name": @"chiniupa",@"desc":@"吃牛扒"};
171         NSDictionary *dict5=@{@"name": @"danteng",@"desc":@"蛋疼"};
172         _array=@[dict1,dict2,dict3,dict4,dict5];
173     }
174 //    NSDictionary *dict1=@{@"name": @"biaoqingdi",@"desc":@"什么表情都弱爆了!"};
175 //    NSDictionary *dict2=@{@"name": @"bingli",@"desc":@"病例"};
176 //    NSDictionary *dict3=@{@"name": @"wangba",@"desc":@"乌龟"};
177 //    NSDictionary *dict4=@{@"name": @"chiniupa",@"desc":@"吃牛扒"};
178 //    NSDictionary *dict5=@{@"name": @"danteng",@"desc":@"蛋疼"};
179
180    // _array=@[dict1,dict2,dict3,dict4,dict5];
181     return _array;
182 }

3.4

使用plist文件

(1)使用Plist文件的目的:将数据与代码分离

(2)加载方法:

NSString *path = [[NSBundle mainBundle] pathForResource:@"ImageData" ofType:@"plist"];

_imageList = [NSArray arrayWithContentsOfFile:path];

提示:通常在方法中出现File字眼,通常需要传递文件的全路径作为参数

 -(NSArray *)array
111 {
112     NSLog(@"需要获取数组");
113     //只实例化一次
114     if (_array==nil) {
115
116         NSString *path=[[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
117         //数组的数据从文件获取
118        // _array=[NSArray arrayWithContentsOfFile:path];
119         _array=[[NSArray alloc]initWithContentsOfFile:path];
120         //打印查看包的位置
121         NSLog(@"%@",path);
122
123        NSLog(@"实例化数组");
124     }
125
126     return _array;
127 }

4.1

补充

开发思路:

1.完成基本功能

2.考虑性能

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

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

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

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

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

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

注意点:

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

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

3.bundle-包(只读)

转载于:https://www.cnblogs.com/lege-Fool-Brid/p/4660959.html

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

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

    iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  2. iOS开发UI篇—UIWindow简单介绍

    iOS开发UI篇-UIWindow简单介绍 一.简单介绍 UIWindow是一种特殊的UIView,通常在一个app中只会有一个UIWindow iOS程序启动完毕后,创建的第一个视图控件就是UIWi ...

  3. iOS开发UI篇—Date Picker和UITool Bar控件简单介绍

    iOS开发UI篇-Date Picker和UITool Bar控件简单介绍 一.Date Picker控件 1.简单介绍: Date Picker显示时间的控件 有默认宽高,不用设置数据源和代理 如何 ...

  4. iOS开发UI篇—多控制器和导航控制器简单介绍

    iOS开发UI篇-多控制器和导航控制器简单介绍 一.多控制器 一个iOS的app很少只由一个控制器组成,除非这个app极其简单.当app中有多个控制器的时候,我们就需要对这些控制器进行管理 有多个vi ...

  5. iOS开发UI篇—UITabBarController简单介绍

    iOS开发UI篇-UITabBarController简单介绍 一.简单介绍 UITabBarController和UINavigationController类似,UITabBarControlle ...

  6. iOS开发UI篇—Modal简单介绍

    iOS开发UI篇-Modal简单介绍 一.简单介绍 除了push之外,还有另外一种控制器的切换方式,那就是Modal 任何控制器都能通过Modal的形式展⽰出来 Modal的默认效果:新控制器从屏幕的 ...

  7. iOS开发UI篇—使用UItableview完成一个简单的QQ好友列表(一)

    iOS开发UI篇-使用UItableview完成一个简单的QQ好友列表(一) 一.项目结构和plist文件 二.实现代码 1.说明: 主控制器直接继承UITableViewController // ...

  8. iOS开发UI篇—使用xib自定义UItableviewcell实现一个简单的团购应用界面布局

    iOS开发UI篇-使用xib自定义UItableviewcell实现一个简单的团购应用界面布局 iOS开发UI篇-使用xib自定义UItableviewcell实现一个简单的团购应用界面布局 一.项目 ...

  9. iOS开发UI篇—使用嵌套模型完成的一个简单汽车图标展示程序

    iOS开发UI篇-使用嵌套模型完成的一个简单汽车图标展示程序 一.plist文件和项目结构图 说明:这是一个嵌套模型的示例 二.代码示例: YYcarsgroup.h文件代码: 1 //2 // YY ...

  10. iOS开发UI篇—Quartz2D简单使用(二)

    iOS开发UI篇-Quartz2D简单使用(二) 一.画文字 代码: // // YYtextview.m // 04-写文字 // // Created by 孔医己 on 14-6-10. // ...

最新文章

  1. c# 获取所有的进程的cpu使用率_Linux CPU使用率很高,但为啥却找不到高CPU的进程
  2. redhat7防火墙关闭_RedHat Enterprise Linux 7关闭防火墙方法
  3. 1 张图,拆解阿里 P8高级架构师必会技术栈!
  4. 关于批量发布blog的问题
  5. App推广中如何寻找200个以上渠道
  6. python 用lambda表达式代替简单的函数, 匿名函数
  7. 关于在linux下搭建VSFTP下匿名不能上传的问题
  8. Spring中Bean的概念
  9. java springmvc 数据库事务_事务的简单回顾_JavaEE框架(Maven+SpringMvc+Spring+MyBatis)全程实战教程_Java视频-51CTO学院...
  10. 免装版_无缝贴图制作软件 PixPlant2中文免装版
  11. 农历php,PHP农历公历转换
  12. 豆瓣上关于一万小时天才理论一书的一个评论
  13. iOS开发--xcode快捷键
  14. 详解云原生应用实践与未来趋势
  15. fscapture下载收费吗?_如今听歌要收费,下载也要付费,你能接受国内音乐App这种改变吗...
  16. php里用钢笔画曲线,ps钢笔工具怎么抠图
  17. una到底啥意思_Una_英文名Una是什么意思
  18. 个人管理:“唐僧”之五项修炼
  19. 学习Python处理Excel 难度0级别 多表合并、多条件筛选、找出重复项、去重
  20. 时态二--(专升本语法)

热门文章

  1. Java线程的5种状态及切换(透彻讲解)-京东面试
  2. Android UsageStatsService(应用使用统计服务)的学习与调研
  3. esayUI实践的一些体会
  4. 不要打开文件,阅读Rvt信息档案
  5. 读取xml中的指定节点的值
  6. mac Lion 10.7系统使用笔记
  7. 光纤测试、OTDR使用经验、FS530OTDR使用经验
  8. access的papersize命令_如何在报表中使用自定义尺寸的纸张
  9. 篮球计分器软件_SPSS 26 综合性数学统计分析工具
  10. 计算机文件的存储单位是什么,了解计算机的朋友请看看