UI图:http://modao.io/app/H8eZCQdV1pskjQ7z8bLh

四个tab:我要赛、赛事、运动吧、个人中心

赛事页面

1、主要是个NavigationController

2、赛事主页面:SaiShiXinXiEventViewController

UITableView实现

- 点击整块,跳转到赛事详情页

- 点击星星,表示对赛事感兴趣

- 点击分享,分享赛事(预计要用第三方分享sdk)

- 点击筛选,弹出下拉筛选栏,筛选后刷新页面数据

- 点击城市,跳转到城市页

3、城市页:SaiShiXinXiCityViewController

UITableView实现

4、赛事详情页:SaiShiXinXiEventDetailViewController

UITableView实现

- 包含:图片、标题、价格、报名状态、位置、时间、主办方、活动介绍、查看图文详情、已报名赛友、感兴趣赛友、评论、推荐、立即报名

- 点击位置,跳转到地图页

- 点击查看图文详情,跳转到图文详情页

- 点击已报名赛友,跳转已报名赛友列表页

- 点击感兴趣赛友,跳转感兴趣赛友列表页

- 点击我要评论,跳转到评论列表页

- 点击立即报名,跳转到提交订单页

5、地图页:SaiShiXinXiMapViewController

预计要接入地图sdk

6、图文详情页:SaiShiXinXiImageTextDetailViewController

取PC端url,是个webview

7、已报名赛友列表页:SaiShiXinXiRegisteredPlayerListViewController

UITableView实现

8、感兴趣赛友列表页:SaiShiXinXiInterestedPlayerListViewController

UITableView实现

9、评论列表页:SaiShiXinXiCommentListViewController

UITableView实现

底部还一个添加评论

10、提交订单页:SaiShiXinXiOrderSubmitViewController

- 包含:标题、地址、时间、票价信息、参加人员、添加人员按钮、总价、提交按钮

- 点击参加人员的删除按钮,可删除

- 点击添加人员按钮,弹出填写报名信息浮层页,填写完信息后点击确定,可添加人员

- 点击提交按钮,跳转到手机验证页

11、手机验证页:SaiShiXinXiMobileVerificationViewController

验证成功后,弹出报名成功浮层页

问题:支付页?

2015.6.11

从赛事信息主页点击城市按钮,在城市页选择一个城市后跳转回主页面,这时候需要将选择的城市信息回传回来

http://blog.csdn.net/mad1989/article/details/7919504

网上搜了有三种方法:

1、建一个model来专门保存城市信息

2、notification实现

3、delegate实现

这里说一下第二种notification的实现方式

第一步:在发送数据的视图页面,注册+发送通知

[[NSNotificationCenter defaultCenter] postNotificationName:@"cityNotification" object:@"testNotification"];

第二步:在接收数据的视图页面,接收通知

 - (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(notificationHandle:) name:@"cityNotification" object:nil];
}
- (void)notificationHandle:(NSNotification *)notification {
self.selectedCity.title = [notification object];
}

2015.6.12

在自定义 UITableViewCell 时,通常在 初始化操作中加入subview,然后在 layoutSubviews 中定义 subview 的 frame

 - (instancetype)initWithReuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithReuseIdentifier:reuseIdentifier]; if (self) { self.backgroundView.backgroundColor = [UIColor lightGrayColor]; _titleLabel = [[UILabel alloc] init];
_titleLabel.font = [UIFont systemFontOfSize:kEventInfomationTitleFontSize];
_titleLabel.text = @"2015年“中国移动4G杯”大理千人环洱海自行车赛";
_titleLabel.textColor = [UIColor whiteColor]; [self.contentView addSubview:_titleLabel];
} return self;
} - (void)layoutSubviews {
[super layoutSubviews]; CGFloat width = CGRectGetWidth(self.contentView.bounds); {
self.titleLabel.frame = CGRectMake(, , width-, );
[self.titleLabel sizeToFit];
}
}

sizeToFit意思是,如果label中的文字长度没有达到宽度的话,会自动缩短宽度以适配文字的长度;

问题:如何设置tableview的分割线为不可见

解答:

self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;

2015.6.13

经验:

UIView对象,如果用纯代码形式创建,调用的是 initWithFrame;

如果是在xib活着storyboard中创建,此时 initWithFrame 方法不会被调用,此时如果需要重新设置UIView的各项属性,可以在 initWithCoder 中设置;

问题:

如何设置 UITableViewCell 为不可选中状态

解答:

[cell setSelectionStyle:UITableViewCellSelectionStyleNone];

原来这种 selecetionStyle有None、Blue、Grey、Default,但在7.0系统之后,只有None和Default两种;

经验:

现在price、location、time、cup、type五种cell都是自定义的,其实有很多重复代码

考虑把图标和文字部分在一个cell的基类实现;

特别之处再另外添加,比如:

price的右侧,有个报名中的图标,可以考虑新建一个stateLabel,将之作为cell.accessoryView;

location的右侧,有个小箭头,这个应该可以系统实现;

cup文字的末尾,有个小图标表示政、体、企等,可以做个图标加上去;

问题:

在自定义的TableViewCell中加了一个属性 imageView,提示错误如下:

Auto property synthesis will not synthesize property 'imageView' because it is 'readwrite' but it will be synthesized 'readonly' via another property

解答:

错误原因是,imageView的名字起的和系统属性一样了,而这个属性是 readonly的

只要换个名字就行啦

问题:

在cell上加了一个button,背景色设为橘黄色,点击cell的颜色设为灰色,目前点击之后,button的背景色也会变成灰色,我想让它保持不变,如何设置?

解答:

 // 设置背景色
typeButton.backgroundColor = [UIColor orangeColor]; // 替换为 // 设置一张带颜色的图片作为背景
[typeButton setBackgroundImage:[UIImage imageWithColor:[UIColor orangeColor]] forState:UIControlStateNormal];

其中 imageWithColor 是用少鸿提供的 category

问题:

如何设置UILabel的文本居中?

解答:

titleLabel.textAlignment = NSTextAlignmentCenter;

2015.6.14

问题:

我想让赛事详情页底部的tabbar消失,之前用的方法是:

 SaiShiXinXiEventDetailVC *edVC = [[SaiShiXinXiEventDetailVC alloc] init];
edVC.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:edVC animated:YES];

但是没有生效;

考虑到EventList是storyboard实现的,于是又在storyboard中设置

但还是没有生效;

解答:

问题:

UITableViewCell的分割线左边有一块是空白的,如何改成从头开始的?

解答:

 // viewDidLoad 中加上如下
- (void)viewDidLoad {
[super viewDidLoad]; if ([self.tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[self.tableView setSeparatorInset:UIEdgeInsetsZero];
} if ([self.tableView respondsToSelector:@selector(setLayoutMargins:)]) {
[self.tableView setLayoutMargins:UIEdgeInsetsZero];
}
} // 修改willDisplayCell
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { if ([cell respondsToSelector:@selector(setSeparatorInset:)]) {
[cell setSeparatorInset:UIEdgeInsetsZero];
} if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
}

文档 by xuyang

1、赛事详情页

  • M:nil
  • V:
  1. 基类:SaiShiXinXiTableViewCell
  2. 信息基类:SaiShiXinXiEventInfomationBaseCell
  3. 头图:SaiShiXinXiEventInfomationImageCell
  4. 标题:SaiShiXinXiEventInfomationTitleCell
  5. 活动介绍:SaiShiXinXiEventIntructionTextCell
  6. 赛友头像:SaiShiXinXiPlayerHeadPhotoCell
  7. 评论列表:SaiShiXinXiCommentListCell
  8. 推荐:SaiShiXinXiRecommendDetailCell
  • C:SaiShiXinXiEventDetailVC

2、城市选择页

  • M:SaiShiXinXiCityModel
  • V:nil
  • C:SaiShiXinXiCityTableViewController

WYS APP的更多相关文章

  1. App开发:模拟服务器数据接口 - MockApi

    为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块.本篇文章就尝试为使用gradle的android项目设计实现Moc ...

  2. Android Studio配置 AndroidAnnotations——Hi_博客 Android App 开发笔记

    以前用Eclicps 用习惯了现在 想学学 用Android Studio 两天的钻研终于 在我电脑上装了一个Android Studio 并完成了AndroidAnnotations 的配置. An ...

  3. Android请求网络共通类——Hi_博客 Android App 开发笔记

    今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. ...

  4. 【原创分享·支付宝支付】HBuilder打包APP调用支付宝客户端支付

    前言 最近有点空余时间,所以,就研究了一下APP支付.前面很早就搞完APP的微信支付了,但是由于时间上和应用上的情况,支付宝一直没空去研究.然后等我空了的时候,发现支付宝居然升级了支付逻辑,虽然目前还 ...

  5. SQLSERVER走起 APP隆重推出

    SQLSERVER走起 APP隆重推出 为方便大家查看本微信公众以前推送的文章,QQ群里面的某位SQLSERVER重度爱好者开发了<SQLSERVER走起>的APP 以供大家一起交流 网页 ...

  6. 从中间件的历史来看移动App开发的未来

    在移动开发领域我们发现一个很奇怪的现象:普通菜鸟新手经过3个月的培训就可以拿到 8K 甚至上万的工作:在北京稍微有点工作经验的 iOS 开发,就要求 2 万一个月的工资.不知道大家是否想过:移动应用开 ...

  7. 搞个这样的APP要多久?

    这是一个“如有雷同,纯属巧合”的故事,外加一些废话,大家请勿对号入座.开始了…… 我有些尴尬地拿着水杯,正对面坐着来访的王总,他是在别处打拼的人,这几年据说收获颇丰,见移动互联网如火如荼,自然也想着要 ...

  8. app开发外包注意事项,2017最新资讯

    我们见过很多创业者,栽在这app外包上.很多创业者对于app外包这件事情不是特别重视,以为将事情交给app外包公司就完事了,实际上不是的.无论是从选择app外包公司还是签订合同.售后维护等各方面都有许 ...

  9. 【Win 10 应用开发】在App所在的进程中执行后台任务

    在以往版本中,后台任务都是以独立的专用进程来运行,因此,定义后台任务代码的类型都要位于 Windows 运行时组件项目中. 不过,在14393中,SDK 作了相应的扩展,不仅支持以前的独立进程中运行后 ...

随机推荐

  1. windows 修改鼠标滚轮自然滚动

    在mac 上玩习惯了,使用windows 时的鼠标实在觉得别扭,在网上百度了一下,找到一个方法,这里记录一下 1 打开windows 的控制面板,点击“硬件和声音” 2 点击“鼠标” 3 然后点击上面 ...

  2. js对象属性—枚举、检查、删除

    前言 我们经常需要操作对象的属性.这里记录ES5中操作对象属性的API和它们之间的差异. 枚举属性 for/in遍历对象中的所有可枚举属性(包括自有属性和继承属性) var obj = {name:& ...

  3. ios wkwebview 跳转到新的controllerview加载页面 出现闪退问题

    func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!) { if(isF ...

  4. Python-2-序列及通用序列操作

    序列包括字符串,列表,元祖,序列中的每个元素都有编号,其中只有元祖不能修改   通用序列操作包括索引. 切片. 相加. 相乘和成员资格检查   索引 >>> greeting = ' ...

  5. Php对象及对象特性篇

    前言 以前写C++最多,大二课上学过Java.现在也差不多还给老师了.现在决定针对php重新梳理一遍,夯实基础,设计模式学起来应该会更加得心应手吧. 介绍 对象作为数据和功能代码的集合,是程序开发和代 ...

  6. 牛客寒假6-C.项链

    链接:https://ac.nowcoder.com/acm/contest/332/C 题意: 小B想给她的新项链染色. 现在有m种颜色,对于第i种颜色,小B有a_i单位的颜料,每单位颜料可以染项链 ...

  7. 使用高性能Pipelines构建.NET通讯程序

    .NET Standard支持一组新的API,System.Span, System.Memory,还有System.IO.Pipelines.这几个新的API极大了提升了.NET程序的效能,将来.N ...

  8. 别让CDN的回源把你的服务器拖垮,采用正确的回源策略

    我们有一台服务器提供的服务主要是以动态页面为主,静态页面都是固定的内容平时更新的很少,最近这台服务器的应用升级到了新版本访问量增大了不少,随之的问题就来了,最近每天一到9点负载就超过警戒值,然后负载持 ...

  9. Java虚拟机(JVM),JDK,JRE和JVM的区别——通过示例学习Java编程(2)

    Java虚拟机(JVM),JDK,JRE和JVM的区别 作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid ...

  10. mongodb 原子操作findAndModify

    原子操作模型数据findAndModify 推荐的方法,以保持原子将保留所有的相关信息,这些信息经常更新,一个文档中使用嵌入文档.这将确保所有的更新为一个单一文档是原子. 考虑下面的 products ...