IOS学习之——彩票应用开发

来源:互联网 发布:网络强国与青年运动 编辑:程序博客网 时间:2024/05/16 15:12
 //***************************************        第八天  彩票   ****************************************** //  1.彩票基本框架搭建彩票功能展示storyboard创建彩票框架图片导入 APPICON 启动页面展示 APPICON取消玻璃效果自定义TabbarController实现自定义Tabbar(UIView),添加五个按钮Tabbar按钮事件监听(TouchDwon事件),添加属性记录选中按钮切换Tabbar的子控制器2.自定义Tabbar抽取封装添加5个按钮,在initFrm方法添加按钮,在layoutsubviews设置按钮frm代理通知控制器选中按钮3.封装自定义TabBar框架按钮的添加就由控制器决定在TabBar增加添加按钮的方法,不在intFrm中初始化按钮不要btn高亮 重写setHighlighted:(BOOL)highlighted 不做任何实现跳到下个控制器,tabbar隐藏实现4.导航栏主题背景设置([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0)UINavigationBar *navBar = [UINavigationBar appearance];背景: setBackgroundImage:forBarMetrics:UIBarMetricsDefaultinitialize讲解标题颜色与大小 setTitleTextAttributesself.navigationBar setBackgroundImage 与 UINavigationBar *navBar = [UINavigationBar appearance];的关系导航控制器的push操作拦截pushViewController 与 popViewControllerAnimated讲解5.导航栏UIBarButtomItem的样式设置由第4个Tab的设置跳到别一个页面演示开始自定义导航控制里写(iOS7)navBar.tintColor = [UIColor whiteColor];iOS6难看 UIBarButtonItem *item = [UIBarButtonItem appearance];设置setBackButtonBackgroundImage与setBackgroundImage(高亮与普通)图片不用拉伸,自动会拉伸6.自定义导航栏标题按钮(购采大厅)购采大厅 导航栏的资讯与图片设置合买跟单 自定义CZTitleButton 按钮围标显示右边 ,顶部旋转self.titleBtn.imageView.transform = CGAffineTransformMakeRotation(-M_PI);self.titleBtn.imageView.transform = CGAffineTransformIdentity;setHighlighted不高度图片//设置图片居中 self.imageView.contentMode = UIViewContentModeCenter;7.设置模块的Cell要以plist文件一演示?演示静态单元格在ios6中的模样使用代码来做cellinit 方法调用[super initWithStyle:UITableViewStyleGrouped];SettingItemType添加个枚举(提下,但不是最终选取的方法)添加SettingItem模型,添加icon title vcClass添加SettingArrowItem SettingSwitchItem 在cell中显示抽取cell 设置item添加不同的accessView循环引用会出回题,如果是SettingItem时,要清空accessView//***************************************        第九天  彩票   ****************************************** // ⑥⑦⑧⑨⑩⑪⑫一、彩票基本框架搭建1.storyboard创建彩票框架【UITabbarController + UINavigationController】2.自定义Tabbar  ①自定义Tabbar控制器,在Tabbar控制器的viewDidLoad方法写下面的步骤  ②自定义Tabbar,创建一个UIView,取名叫mTabbar,然后添加五个按钮上去。  //UIView mTabbar = [[UIView alloc] init];  // 然后往mTabbar add 5个按钮  ③然后将tabbar添加到系统的tabbar上  //获取系统的tabbar [self.tabbar addSubView:mTabbar]  ④监听自定义tabbar上按钮的点击事件来切换tabbar控制器的子控制器  ⑤设置自定义tabbar里button的选中效果二、抽取自定义tabbar1.写一个类继承UIView,类名为CZTabbar2.在CZTabbar的initWithFrame方法中初始化五个按钮3.在CZTabbar中对五个按钮进行布局4.监听按钮事件,设置选中按钮5.代理通知控制器按钮的选中三、优化自定义tabbar1.去除自定义的initWithFrame的方法2.在CZTabbar 增加一个 添加按钮的方法  //addBtnWithNormalImge:selImg 因为添加按钮应该让外界来添加,不应该自己来添加3.在自定义的tabbar控制器,循环往tabbar添加按钮图片4.从新回到CZTabbar的layoutSubivews方法,重新修改布局代码5.运行按钮的选中状态,自定按钮,实现setHighlighted方法,空实现/*@implementation CZTabbarButton : UIButton-(void)setHighlighted:(BOOL)highlighted{    //空实现}*/6.要改按钮的监听事件为TouchDwon四、设置导航栏样式1.设置导航栏背影图片"导航栏背影图片设置有两种方式"①局部配置: 获取导航控制器的navigationBar属性,来设置导航条的背景图片,'这种只能对单个导航控制器有效'/*[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavBar64"] forBarMetrics:UIBarMetricsDefault];*/②全局设置: 通过[UINavigationBar appearance] 获取的导航条对象可以设置应用的 "所有导航条" 的样式,如:/* UINavigationBar *navBar = [UINavigationBar appearance];[navBar setBackgroundImage:[UIImage imageNamed:@"NavBar64"] forBarMetrics:UIBarMetricsDefault]; */2.设置状态栏的样式"设置状态栏的样式有两种方式"方式1: 由控制器决定状态样的样式,在控制器实现【-(UIStatusBarStyle)preferredStatusBarStyle】方法/* 注:如果有导航控制器,应在导航控制器实现【-(UIStatusBarStyle)preferredStatusBarStyle】 这种方式要指定storyboard中的每个导航控制器的类 指向 自定义的导航控制器类 */方式2: 由UIApplicatoin设置状态栏样式①在info.plist文件中添加View controller-based status bar appearance = NO//为什么要配置plist文件,因为xcode5以后创建的项目,状态栏的样默认是由控制器决定②[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;"+initialize方法"①背景和样式只要调用一次就好了,把主题的设置转到 "自定义导航控制器" 的initialize方法中②initialize 方法在类第一次使用的时候被调用3.设置导航条的标题大小与颜色①获取全局配置的 UINavigationBar 对象,调用【setTitleTextAttributes】方法来设置;/*NSDictionary *titleAttr = @{    NSForegroundColorAttributeName:[UIColor whiteColor],//字体颜色    NSFontAttributeName:[UIFont systemFontOfSize:20]//字体大字                            };[navBar setTitleTextAttributes:titleAttr]; */五、添加导航条按钮1.添加 "购买大厅" 的导航条右上解 '资讯' 按钮有文字有图片,使用UIButton实现,UIBarButtonItem要么只能放文字要么只能放图片按钮中的 '文字与图片的间距' 可以在storybaord中通过属性里的【edge:title】来设置2.添加 "合买跟单"'标题按钮' 的实现如图①默认按钮的图片在左边,文字在右边②现在按钮的文字要在右边,这里可以通过自己义按钮来改变图片和文字的显示位置只要实现下面两个方法即可//【titleRectForContentRect】标题的位置与尺寸//【imageRectForContentRect】图片的位置与尺寸// 实现setHighlighted,不高亮图片③点击 '标题按钮' 按钮图片要旋转,调用Button的imageView的transform属性进行旋转即可3.添加 "我的彩票" 导航条右边的 '设置' 按钮》设置的文字大小与颜色*使用[UIBarButtonItem appearance]设置"全局的导航条"右边按钮的文字大小与颜色/*代码摘要 *[barBtnItem setTitleTextAttributes:itemsAttr forState:UIControlStateNormal]; */六、设置导航控制器在显示新控制器时 "隐藏" Tabbar解决方案1.storyboard设置,此时方式比较麻烦2.代码设置*在自定义的导航控制器中,拦截【pushViewController:animated:】此方法,当有新的控制器推出时调用*在拦的方法中设置viewController.hidesBottomBarWhenPushed = YES;*还有个【popViewController:animated:】,此方法,当有控制器移除是调用七、设置导航控制器返回按钮的样式》导航控制器的返回按钮的箭头是白色的,但默认是蓝色》调用[UINavigationBar appearance]的tintColor属性为白色即可八、实现 "设置页面"》经分析,不使用静态表格,使用代码方式实现1.创建一个继承表格控制器的 '设置控制器' 【@interface CZSettingViewController : UITableViewController】2.创建模型【CZSettingItem】3.显示数据4.在 '设置控制器' 中实现下面方法,目的返回组样式的表格/* //创建表格控制器时会调用此方法 -(instancetype)initWithStyle:(UITableViewStyle)style{    //不管传什么,都返回组样式的表格    if (self = [super initWithStyle:UITableViewStyleGrouped]) {    }    return self;}*/5.添加CZSettingItem的类型,实现不同类型的cell,如箭头cell,开关Cell ①CZSettingArrowItem ②CZSettingSwichItem6.重新实现表格显示的方法,根据CZSettingItem的类型来添加箭头还是开头7.抽取自定义的Cell,实现数据模型设置时,显示表格数据*为什么要抽取,因为【tableView:cellForRowAtIndexPath:】方法已经写太多代码九、实现表格点击进行不同的控制器》在CZSettingItem添加个assign的Class属性,用来存放控制器的类型//为什么用assign,因为Class是结构体》在didSelected方法中,通过Class创建控制器,并使用导航控制器推出十、实现设置表格不同cell点击的不同操作》直接在didSelected方法里判断索引来实现不同操作不实际》解决方案 给CZSettingItem添加一个block,预存要操作的 '代码块'"复习block"1.Block与函数的区别》Block是一块代码块①函数只能在方法外部定义,而block可以在方法内部和外部都能定义②Block与函数都可以有返回值2.Block定义复习①无返回值,无参数Block '打招呼'②无返回值,有参数Block '传数字打印'③有返回值,有参数Block '加法运算'④无返回值,无参数Block的重命名 'operation'"实现不同cell点击的不同操作"1.在CZSettingItem头文件中定义一个typedef void (^OperationBlock)();2.在CZSettingItem添加一个OperationBlock属性3.在表格的didSelected中判断,如果block有值,执行block的代码,如更新4.实现更新,"讲解版本更新原理,并模拟实现"十一、添加 "组模型CZSettingGroup",然后 "组模型"添加到 "数组"》目标,方便以后抽取》组模型里添加头部标题和尾部标题属性,用于设置每组表格的加头部标题和尾部标题十二、抽取父类,其它类似于 "设置控制器" 可以继承父类来使用1.抽取一个CZBaseSettingViewController2.把CZSettingViewController的代码copy到CZBaseSettingViewController中3.copy后删除CZBaseSettingViewController的viewDidLoad方法 "和" 更改相应的类名4.把表格的数据属性'【cellDatas】' 暴露在头部文件中,实现懒加载,这样子控件器只要在自己的viewDidLoad添加数据即可》实现:推送和提醒》实现:推送和提醒-开奖号码推送 AwardNumPush》实现:推送和提醒-中奖动画 AwardAnimation》实现:推送和提醒-比分直播提醒 ScoreLive》实现:推送和提醒-购彩定时提醒 BuyTimerWarn十三、表格结节》抽取CZSettingCell的accessoryView懒加载》设置cell的selectionStyle属性,开关不能有点击效果》开关按钮保存,使用settingItem的title为key保存到用户偏好设置中》设置表格的背景颜色/*self.tableView.backgroundView = nil;在ios6中backgroundView的优先级大于backgroundColor,所以要设置backgroundView为空,不然显示不出背景图片self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"bg"]]*/
0 0
原创粉丝点击