IOS开发之微信山寨版
为了犒劳自己的学习内容,就山寨个微信的视图控制吧。拿着微信,仔细的看了一下,主要用到了TabBarController以及配置TabBarItem, NavigationController以及配置NavigationBarItem, 还用到了我们比较复杂的TableViewController来显示我们的数据。在用到TableView中既有静态的TableView,也有动态的TableView。动态的TableView主要用来显示我们的数据,而静态的TableView主要用来显示功能模块导航时使用。在用到静态TableView时我们还用到啦分组的和未分组的cell。
1.下面是我们主要的视图框架,需要时我们会给对应的Controller关联相应的代码,实现我们的业务逻辑。视图框架如下:
2.Project最终运行的界面如下,下面带箭头的Cell点进去是一个ViewController,下面的图片都是在网上找得素材,第一个页面里面是放的动态的TableView,里面的数据是模拟网络请求过来的动态数据:
3.不能只贴图片对吧,写程序是少不了代码的,从第一个页面入手,如何动态加载我们的TableView. 在进行编码之前,首先得配置我们的cell模板,在我们动态TableView中用到几种Cell,我们就配置几种cell模板,在配置cell模板时要设置每个cell的identifier,便于在代码中根据不同的数据来选择我们数据对应的cell。我们的TableView的控制类要继承于我们的UITableViewController类。下面是往我们动态TableView中的cell添加数据
(1)在我们相应的TableViewController类中创建我们的测试数据,来模拟网络请求。创建一个可变数组,往可变数组中存入100个字典,字典里模拟用户信息。
//初始化数据 self.myData = [[NSMutableArray alloc] initWithCapacity:100]; //往数组里添加字典 for (int i = 0; i 100; i ++) { //创建用户 NSString *name = [NSString stringWithFormat:@"User%03d", i]; NSString *number = [NSString stringWithFormat:@"12345%03d", i]; //创建字典 NSDictionary *user = @{@"name":name, @"number":number}; //字典加入数组 [self.myData addObject:user]; }
(2)返回我们sectionNumber,在这我们就写一个分组吧,真正的数据是计算出来的
//在动态TableView中的分组数,有几组返回几 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView // Return the number of sections. return 1; }
(3)返回每个分组的行数,这里我们返回的时我们创建数组元素的个数
//每个分组中的行数,即为数组元素的个数 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section // Return the number of rows in the section. return self.myData.count; }
(4)给我们的cell赋数据,通过Cell的identifier来创建cell,获取第几条数据是通过回调参数indexPath的item来确定获取第几条数据
//创建cell - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath NSLog(@"获取的第%03d个数据", indexPath.item);//请求测试 //通过我们的cell的类型创建相应的cell UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"number" forIndexPath:indexPath]; // Configure the cell... cell.textLabel.text = self.myData[indexPath.item][@"name"]; cell.detailTextLabel.text = self.myData[indexPath.item][@"number"]; return cell; }
代码说明:
动态的TableView就是为我们的大数据准备的,默认的事屏幕上显示多少,就会请求多少数据。随着屏幕的下拉,会请求要显示的数据,上出屏幕的数据会被释放掉。若想请求更多,我们需要用代码实现,在以后的博客中会介绍,在这不做过多的介绍。动态请求数据如下:
静态的TableView实现起来比较简单,配置起来也比较简单,在这不做赘述。上面的东西只是防微信的视图框架,没有给出具体的业务逻辑。要实现具体的业务逻辑,我们需要给每个ViewController关联实体类,然后在每个类中实现我们对应的业务逻辑,这样分析起来,微信的代码量还是蛮大的。在以后的博客中会给出具体的业务逻辑实现,本篇博客先做一个引子吧。
[ios开发]-APP-上架流程 由于苹果的机制,在非越狱机器上安装必须通过官方的Appstore, 开发者开发好应用后上传Appstore,也需要通过审核等环节。 AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传Appstore作了支持。 本文从三个流程来介绍如何实现AppCan在 线编译出ipa包,以及上传到苹果Appstore。
相关文章
- (NO.00005)iOS实现炸弹人游戏(三):从主场景类谈起
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(五)
- Unity3d与iOS交互开发——接入平台SDK必备技能
- iOS/iphone开发如何为苹果开发者帐号APPID续费
- iOS 视图控制器转场详解(下)
- iOS开发之多图片无缝滚动组件封装与使用
- iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
- iOS开发之新浪微博山寨版代码优化
- iOS开发之ReactiveCocoa下的MVVM(干货分享)
- IOS开发之UI布局
- XCode 5 “ios模拟器未能安装此应用程序”解决办法
- iOS开发网络数据之AFNetworking使用
- ios nil、NULL和NSNull 的使用
- Ios开发之 -- js和ios的交互
- 【IOS-COCOS2D游戏开发之十二】浅析使用C++/C/OC进行IOS游戏混编出现“FAILED WITH EXIT”问题与小结;
- 【IOS开发必收藏】详解IOS应用程序内使用IAP/STOREKIT付费、沙盒(SANDBOX)测试、创建测试账号流程!【2012-12-11日更新获取”产品付费数量等于0的问题”】
- 【IOS-COCOS2D-X 游戏开发之十】自定义CCSPRITE/LAYER/CCNODE及静态类模版&自定义类细节说明&COCOS2DX触屏事件讲解
- iOS开发那些事--自定义单元格实现
- 使用github管理iOS分布式项目开发
- Xamarin Mono 环境搭建(使用Visual Studio 2013 开发android 和 ios )
- [转]iOS 应用内付费(IAP)开发步骤
- ios swift5 自定义初始化方法 convenience init UIViewController
- iOS 算法题
- ios swift bytes:[UInt8]合成一个Int数:左为高位,右为低位
- ios swift:Cannot convert value of type ‘ArraySlice<UInt8>‘ to specified type ‘[UInt8]‘
- iOS(swift)UIView设置边框,切圆角
- ios蓝牙详解,苹果app作为蓝牙外设(从设备)CBPeripheralManager
- ios直播开发基础,推流协议及流程
- iOS音视频开发十一:音视频解封装模块,从 MP4 到 MP4
- ios音视频开发路线及技术点