iOS彩票项目--第三天,搭建竞技场和发现,搭建幸运选号和我的彩票界面
一、竞技场搭建--UISegmentedControl的使用
1 // 重写 自定义控制器的view 2 - (void)loadView 3 { 4 UIImageView *imgView = [[UIImageView alloc] initWithFrame:ChaosScreenBounds]; 5 6 imgView.image = [UIImage imageNamed:@"NLArenaBackground"]; 7 imgView.userInteractionEnabled = YES; 8 9 self.view = imgView; 10 } 11 12 - (void)viewDidLoad { 13 [super viewDidLoad]; 14 15 16 UISegmentedControl *seg = [[UISegmentedControl alloc] initWithItems:@[@"足球",@"篮球"]]; 17 // 设置宽度 18 seg.width += 60; 19 // 默认选中第一个 20 seg.selectedSegmentIndex = 0; 21 22 // 设置的文字颜色 23 seg.tintColor = ChaosRGB(0, 142, 143); 24 25 // 设置选中后文字颜色 26 NSMutableDictionary *dict = [NSMutableDictionary dictionary]; 27 dict[NSForegroundColorAttributeName] = [UIColor whiteColor]; 28 [seg setTitleTextAttributes:dict forState:UIControlStateSelected]; 29 30 // 设置背景图片 31 [seg setBackgroundImage:[UIImage imageNamed:@"CPArenaSegmentBG"] forState:UIControlStateNormal barMetrics:UIBarMetricsDefault]; 32 // 设置选中后的图片 33 [seg setBackgroundImage:[UIImage imageNamed:@"CPArenaSegmentSelectedBG"] forState:UIControlStateSelected barMetrics:UIBarMetricsDefault]; 34 35 self.navigationItem.titleView = seg; 36 37 // // 设置导航控制器navBar的背景图片,,这里是有导航VC的子控制器修改了,不符合封装的思想 38 // UIImage *image = [UIImage imageNamed:@"NLArenaNavBar64"]; 39 // image = [image stretchableImageWithLeftCapWidth:image.size.width * 0.5 topCapHeight:image.size.height * 0.5]; 40 // 41 // [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault]; 42 43 }
二、搭建发现中的合买--storyboard和代码混合开发
- 重定义按钮,改变按钮中图片和label的顺序。layoutSubviews方法默认会调用两次,这样位置就会出现偏差,如图黄色框框为偏差
1 @implementation ChaosTitleView 2 3 #pragma mark - 重新排列按钮内部空间的顺序,原始顺序:图片左,文字右 需求:图片右,文字左 4 - (void)layoutSubviews 5 { 6 [super layoutSubviews]; 7 // layoutSubviews这个方法会来两次,第一次变成自己所需求的。但是第二次来又变了一次,这里判断一下 8 if (self.titleLabel.x > self.imageView.x) { 9 10 // 思路,改变x坐标 11 self.titleLabel.x = self.imageView.x; 12 self.imageView.x = CGRectGetMaxX(self.titleLabel.frame); 13 14 } 15 } 16 17 @end
三、搭建发现中的幸运选号
--在storyboard中设置红框框中的属性,只能隐藏系统中的TabBar,但是项目中的是自定义的,
--解决办法,自定义TabBar的同时,不要把系统的移除。直接把自定义的加到系统的上面。在viewWillAppear方法中移除系统自带的按钮
--幸运选号的界面背景是张图片,不需要下面的导航条,设置了push后隐藏后,出现push完了之后,还有隐藏导航条的动画问题。以下是点击幸运选号瞬间的截图
--解决办法,自定义背景View,把图片画上去
--图片做动画的方法
--幸运选号界面布局--站位思想。最后将view的alpha设置为0。但是有时候还是会出现,push完后,下面导航条的动画消失,导致整个界面重新布局,代码如下
1 // 如果有storyboard,需要在这里布局子控件位置,因为storyboard会先调用updateViewConstraints布局storyboard描述的位置,等它描述完,我们在布局下。 2 // 如果使用storyboard,在viewDidLoad使用frame布局是不准确的。 3 - (void)viewDidLayoutSubviews 4 { 5 [super viewDidLayoutSubviews]; 6 7 CGFloat screenH = [UIScreen mainScreen].bounds.size.height; 8 CGFloat screenW = [UIScreen mainScreen].bounds.size.width; 9 10 CGFloat x = 0; 11 CGFloat w = 192; 12 CGFloat h = 140; 13 int cols = 2; 14 NSUInteger count = self.btns.count; 15 NSUInteger rows = (count - 1) / cols + 1; 16 CGFloat margin = (screenH - rows * 192) / (rows + 1); 17 int col = 0; 18 int row = 0; 19 int i = 0; 20 CGFloat y = 0; 21 for (UIButton *btn in _btns) { 22 col = i % cols; 23 row = i / cols; 24 y = (margin + h) * row + margin; 25 if (col == 0) { 26 x = 0; 27 }else{ 28 x = screenW - w; 29 } 30 btn.frame = CGRectMake(x, y, w, h); 31 32 i++; 33 } 34 35 }
View Code
四、我的彩票界面
--重点是按钮图片被拉伸的不好看。通过鼠标点击设置如下界面,没有效果
--解决方法,拿到按钮,在viewDidLoad方法中获取按钮当前背景图片,并拉伸
iOS彩票项目--第三天,搭建竞技场和发现,搭建幸运选号和我的彩票界面相关推荐
- 新巴巴运动网 项目第三天
新巴巴运动网 项目第三天 今天内容 Dubbo优化 搭建后台管理页面 品牌管理 列表查询(带条件 + 分页) 品牌管理 去修改页面 品牌管理 异步上传图片 Dubbo优化 超时 服务消费方通过注册中心 ...
- 彩票模拟选号程序java_java课程设计-彩票购买抽奖程序
彩票抽奖程序 [TOC] ###可实现功能: 允许注册用户,用户信息包括用户id,用户名,密码,账户金额,电话号码等属性. 允许注册用户购买彩票:手动选号.随机选号,并允许设置投注数. 抽奖功能:要求 ...
- 用linux模拟彩票摇号器下载,大乐透模拟摇奖器拟选号器
大乐透模拟摇奖器拟选号器是一款非常实用的彩票app,它给你带来了强大的模拟选号功能,同时也可以让小伙伴们更加钻研选号规律,让你能够轻松赢得大奖,只要你掌握一门技术,就可以稳步提升自己的收益哦,喜欢的朋 ...
- 开源项目—FLutter/iOS/Android编写的三个计算器APP
前端时间使用Flutter,iOS,Android三种技术编写了三个相同功能的计算器APP,github地址,https://github.com/ThinkerJack/android-ios-fl ...
- ios 各种项目源码
http://www.cocoachina.com/ios/20160719/17078.html 一:源代码实例 1:快速搭建项目源代码 地址:https://github.com/wujunyan ...
- GitHub 上都有哪些值得关注学习的 iOS 开源项目?
GitHub 上都有哪些值得关注学习的 iOS 开源项目?修改 如果仅按照 GitHub 月流行查看 Objective-C 项目的话有 ── Trending Objective-C reposit ...
- 1小时学会:最简单的iOS直播推流(三)使用系统接口捕获音视频数据
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...
- ios小项目——新浪微博客户端总结
2019独角兽企业重金招聘Python工程师标准>>> 们还是登录不了,你们要用还是得自己申请appkey并且把回调网址设为baidu.或者是再下面留言,留下你的微博uid我把你加入 ...
- maven web项目导入sts_Spring Boot2 系列教程(二)创建 Spring Boot 项目的三种方式
我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有 ...
最新文章
- MLPerf基准测试再发榜,浪潮AI服务器刷新18项纪录
- Python基于MASK信息抽取ROI子图实战:原始影像和mask文件都是二维的情况
- 小蠢笔记:从继承特性来看构造函数
- 7-26晚上实现mystring
- android:windowSoftInputMode属性详解
- 通过实例理解 Go 逃逸分析
- 论嵌入式与单片机,相爱相杀。
- 项目管理——任务分配闲谈
- 学习TeXworks编辑器(二)TAB补全详解与自定义补全命令总结
- 提升SQLite数据插入效率低、速度慢的方法
- 联想thinkpadE14 vm蓝屏问题解决
- 大型天燃气供应商遭勒索攻击、Log4Shell正在突变|12月15日全球网络安全热点
- python课程总结-Python课程学习总结
- uniapp生成高清海报图canvas
- Android程序配置热点IP,Android 10版本获取已连接本机热点的ip
- 计算机系统安全期末复习
- 使用 flying-saucer-pdf 实现html转换pdf补充
- java+mysql+javaweb网上购物系统
- RabbitMQ简介以及AMQP协议
- BBR 拥塞控制算法blog笔记