UI进阶之--网易彩票手写plist文件,动态创建控制器与tableViewcell
点击右上角设置按钮

点击按钮后发生的事件:1. 控制器的跳转,进入新的控制器.view, 2. 跳转的时候对将要跳转的目标控制的子控件进行了布局.---通过手写plist文件的方式加载
为按钮注册单击事件
#import "PBBMyLottory.h"
#import "PBBSettingViewController.h"
@interface PBBMyLottory ()
@property (weak, nonatomic) IBOutlet UIButton *loginButton;
@end
@implementation PBBMyLottory
- (IBAction)didClickSettingButton:(id)sender {
//创建控制器 + 跳转到新的控制器
PBBSettingViewController * setVc = [[PBBSettingViewController alloc] init];
//设置右上角常见问题按钮
UIBarButtonItem * rightItem = [[UIBarButtonItem alloc] initWithTitle:@"常见问题" style:UIBarButtonItemStylePlain target:self action:@selector(didClickChangJianButton)];;
setVc.navigationItem.rightBarButtonItem = rightItem;
//在PBBSettingViewController属性中声明一个plistname的属性用来存储手写plist文件名
setVc.plistName = @"PBBMynblist.plist";
[self.navigationController pushViewController:setVc animated:YES];
}
-(void)didClickChangJianButton{
NSLog(@"常见问题i");
}
- 点击设置按钮后需要跳入的界面

- 跳转前需要进行手动设置tableview的样式
//设置tableView为分组的样式,重写构造init方法
-(instancetype)init{
return [super initWithStyle:UITableViewStyleGrouped];
}
-(instancetype)initWithStyle:(UITableViewStyle)style{
return [super initWithStyle:UITableViewStyleGrouped];
}
//设置返回按钮 格式 不同状态下的显示图片
-(void)viewDidLoad{
[super viewDidLoad];
UIBarButtonItem * backItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"NavBack"] style:UIBarButtonItemStylePlain target:self action:@selector(didClickBackButton)];
self.navigationItem.rightBarButtonItem.title = @"常见问题";
self.navigationItem.title = @"设置哦!";
self.navigationItem.leftBarButtonItem = backItem;
}
//如果自定义了返回按钮,则返回按钮进入上一个控制器需要手动返回.
-(void)didClickBackButton{
[self.navigationController popViewControllerAnimated:YES];
}
- 此界面的控件全部由手动写plist文件创建

- 首先有三组数据,每组分别有1个 4 个 4个 cell
- 每组的组header 与footer 都为空,先写上以防以后添加内容.
- plist文件整个是一个数组,下面的item是字典header与footer对应的内容,再下面是一个数组,数组里面存了每个cell的左边的icon头像,内容-title,以及右边的-accessory的style如图

- 由于第一组的cell点击去设置的是普通的一个viewcontroller,则没有plist_name这一项如图

- 然后plist_name这一项就可以为空,因为里面无需再跳转其他控制器,以及为跳转过后其他控制器里面内容控件等等 赋值

- 点击推送和提醒需要跳转进入的控制器


- 对应手写plist文件为

这里target_vc要跳转的目标控制器如果跟设置界面的控制器类型一致,则用PBBSettingViewController这个类型的控制器---方便而已
下面是跳转进入的控制器的plist文件的编写,由于点进去的界面还需要进行跳转则再写对应跳转过去的plist文件,再在plist_name中写上要跳转的plist文件名


总结:plist文件书写首先看要跳转的界面的类型,网易彩票的是tableView类型,然后看有几组数据,每组数据的header 与 footer是否为空,写上最好以防有用(对应的NSDictionary),每个cell对应的又是一个数组,因为每个cell中存的数据不仅仅是一个标题+文字,而是存储了标题+文字title+右侧accessory,则字典不能满足,要用数组NSArray来存储每个cell数据.如果选中cell进行跳转,跳转进入的界面是类似设置的界面----也就是每个cell点击的时候还需要跳转进入下一个界面,则需要分别对每个cell写对应plist文件.
UI进阶之--网易彩票手写plist文件,动态创建控制器与tableViewcell的更多相关文章
- JDK动态代理深入理解分析并手写简易JDK动态代理(下)
原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-01-05/27.html 作者:夜月归途 出处:http://www.guitu ...
- JDK动态代理深入理解分析并手写简易JDK动态代理(上)
原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-01-03/27.html 作者:夜月归途 出处:http://www.guitu ...
- 前端进阶之认识与手写compose方法
目录 前言:为什么要学习这个方法 compose简介 compose的实现 最容易理解的实现方式 手写javascript中reduce方法 redux中compose的实现 参考文章 最后 前言:为 ...
- [iOS UI进阶 - 2.0] 彩票Demo v1.0
A.需求 1.模仿“网易彩票”做出有5个导航页面和相应功能的Demo 2.v1.0 版本搭建基本框架 code source:https://github.com/hellovoidworld/H ...
- 手写PE文件(二)
[文章标题]: 纯手工编写的PE可执行程序 [文章作者]: Kinney [作者邮箱]: mohen_ng@sina.cn [下载地址]: 自己搜索下载 [使用工具]: C32 [操作平台]: win ...
- iOS-读写plist文件
读写plist文件 问题,我有一个plist文件,表示56个民族的,但是里面保存的字典,我想转换成一个数组 好的,那么就先遍历这个plist,然后将结果保存到一个数组中,这里出现的一个问题就是C语言字 ...
- [iOS UI进阶 - 2.3] 彩票Demo v1.3
A.需求 真机调试 "关于”模块 存储开关状态 打电话.发短信 应用评分 打开其他应用 cell 在iOS6 和 iOS7的适配 block的循环引用 屏幕适配 code source: ...
- [iOS UI进阶 - 2.4] 彩票Demo v1.4 转盘动画
A.需求 幸运广场界面中有一个幸运转盘,平时能够自动缓缓转动 能够选择星座 点击“开始选号”开速旋转转盘,旋转一定周数 转盘转动速度节奏:开始-慢-块-慢-结束 设置其余的背景和按钮 code s ...
- [iOS UI进阶 - 2.2] 彩票Demo v1.2 UICollectionView基本
A.需要掌握的 设计.实现设置界面 cell的封装 UICollectionView的使用 自定义UICollectionView 抽取控制器父类 "帮助"功能 code sour ...
随机推荐
- SSH+Oracle10G抛Disabling contextual LOB creation as createClob() m
在使用Oracle10G时候,实体类使用了CLOB字段,结果抛了Disabling contextual LOB creation as createClob() method threw error ...
- 《你不知道的JavaScript》读书笔记(一)作用域
名词 引擎:从头到尾负责整个 JavaScript 程序的 编译 及 执行 过程. 编译器:负责 语法分析 及 代码生成. 作用域:负责收集并维护由所有声明的标识符(变量)组成的一系列查询,并实施一套 ...
- 【FFXV】中物理模拟的结构以及游戏业界的乐趣
11月2日是在日本兵库县神户会议中心召开的[SIGGRAPH ASIA 2015]的第一天,在游戏开发专门的研究会[R&D in the Video Game Industry]上,展开了[F ...
- lambda表达式对比
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- select * 所有字段时如何巧妙的使用覆盖索引
内容从"mysql高性能书籍" 179页摘取 当select * 时.往往使用不到索引..效率不高,因为查询从表中选择所有的列,没有任何索引能覆盖所有的列.不过还是有捷径可以利用 ...
- 医生工作台二期-bug总结
bug记录 1.视频问诊详情查看流,流里进入检查单详情上传图片后返回闪退 这块cell用的相同的id,开始创建的是第一个if里面的cell,后来创建的是else里面的cell,因为之前用TipCell ...
- P1092 虫食算 NOIP2002
为了测试stl 30分的暴力写法... #include <bits/stdc++.h> using namespace std; const int maxn = 11; int n; ...
- Simple Web Example
eclipse3.7 运行一个简单的servlet,Target Platfrom 必要的jar为 0 ACTIVE org.eclipse.osgi_3.7.2.v20120110-141 ...
- [daily][device][bluetooth] 蓝牙怎么办!(archlinux下驱动蓝牙鼠标,以及三星手机)
去年地摊买的破无线鼠标坏掉了.看上微软的Designer Mouse蓝牙鼠,但是买之前我要确认我能不能驱起来. 这款鼠标只支持蓝牙4.0.系统支持windows8以上,不支持xp和windows7. ...
- SQL查询中关于索引使用的笔记
建表KeyLevelStat (无主键),2个索引: CREATE TABLE KeyLevelStat( [Date] [int] NOT NULL, [Num] [varchar](8), [R0 ...