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 ...
随机推荐
- CodeForces 577B 模和vecto
上一年的最后一次训练赛被卡了AK... 一开始天真的认为每个数字都进行取模 然后认为它是一个vol为取模后的数 val为0的01背包 去计算dp[m]能否被装满 只想到了其中的一点..简直天真 后来看 ...
- 【翻译】Kinect v2程序设计(C++) Depth编
Kinect SDK v2预览版,取得Depth数据的方法说明. 上一节,介绍了通过使用Kinect for Windows SDK v2预览版(以下简称为,Kinect SDK v2预览版)从Kin ...
- P1083 借教室
思路:前缀和, c表示对于当前的middle, 前缀和 #include <bits/stdc++.h> using namespace std; const int maxn = 1e6 ...
- 更新Delphi中SVN客户端版本的方法
Delphi从XE以后集成里SVN客户端, 安装完Delphi以后, 在bin\subversion下, 存放的就是SVN客户端文件, 可惜版本有点低(好像是1.7的) 如果想更新成高版本的客户端文件 ...
- Bootstrap 模态框插件
一.基本使用 使用模态框的弹窗组件需要三层 div 容器元素,分别为 modal(模态声明层). dialog(窗口声明层).content(内容层).在内容层里面,还有三层,分别为 header(头 ...
- xftp的使用
1.xftp 一个基于 MS windows 平台的功能强大的SFTP.FTP 文件传输软件 2.下载安装 *3.在linux上安装服务 sudo yum install vsftp
- qt cef嵌入web
原文http://blog.sina.com.cn/s/blog_9e59cf590102vnfc.html 最近项目需要,研究了下libcef库. Cef(Chromium Embedded Fra ...
- Windows Runtime - 面向对象化的C++(并非意味着托管)
Windows 8的开发平台总体上分为两部分:一是全新的WinRT,界面搭配Metro style,二是传统的Win32..NET(SL).IE三大平台,界面为传统窗体风格.其中全新的WinRT被微软 ...
- ArcGIS API for Silverlight 实现修改地图上的工程点位置
原文:ArcGIS API for Silverlight 实现修改地图上的工程点位置 #region 处理工程点点击编辑相关事件 public Graphic editgraphics = null ...
- [LeetCode]题解(python):088 Merge Sorted Array
题目来源 https://leetcode.com/problems/merge-sorted-array/ Given two sorted integer arrays nums1 and num ...