一、竞技场搭建--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彩票项目--第三天,搭建竞技场和发现,搭建幸运选号和我的彩票界面相关推荐

  1. 新巴巴运动网 项目第三天

    新巴巴运动网 项目第三天 今天内容 Dubbo优化 搭建后台管理页面 品牌管理 列表查询(带条件 + 分页) 品牌管理 去修改页面 品牌管理 异步上传图片 Dubbo优化 超时 服务消费方通过注册中心 ...

  2. 彩票模拟选号程序java_java课程设计-彩票购买抽奖程序

    彩票抽奖程序 [TOC] ###可实现功能: 允许注册用户,用户信息包括用户id,用户名,密码,账户金额,电话号码等属性. 允许注册用户购买彩票:手动选号.随机选号,并允许设置投注数. 抽奖功能:要求 ...

  3. 用linux模拟彩票摇号器下载,大乐透模拟摇奖器拟选号器

    大乐透模拟摇奖器拟选号器是一款非常实用的彩票app,它给你带来了强大的模拟选号功能,同时也可以让小伙伴们更加钻研选号规律,让你能够轻松赢得大奖,只要你掌握一门技术,就可以稳步提升自己的收益哦,喜欢的朋 ...

  4. 开源项目—FLutter/iOS/Android编写的三个计算器APP

    前端时间使用Flutter,iOS,Android三种技术编写了三个相同功能的计算器APP,github地址,https://github.com/ThinkerJack/android-ios-fl ...

  5. ios 各种项目源码

    http://www.cocoachina.com/ios/20160719/17078.html 一:源代码实例 1:快速搭建项目源代码 地址:https://github.com/wujunyan ...

  6. GitHub 上都有哪些值得关注学习的 iOS 开源项目?

    GitHub 上都有哪些值得关注学习的 iOS 开源项目?修改 如果仅按照 GitHub 月流行查看 Objective-C 项目的话有 ── Trending Objective-C reposit ...

  7. 1小时学会:最简单的iOS直播推流(三)使用系统接口捕获音视频数据

    最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源 ...

  8. ios小项目——新浪微博客户端总结

    2019独角兽企业重金招聘Python工程师标准>>> 们还是登录不了,你们要用还是得自己申请appkey并且把回调网址设为baidu.或者是再下面留言,留下你的微博uid我把你加入 ...

  9. maven web项目导入sts_Spring Boot2 系列教程(二)创建 Spring Boot 项目的三种方式

    我最早是 2016 年底开始写 Spring Boot 相关的博客,当时使用的版本还是 1.4.x ,文章发表在 CSDN 上,阅读量最大的一篇有 43W+,如下图: 2017 年由于种种原因,就没有 ...

最新文章

  1. MLPerf基准测试再发榜,浪潮AI服务器刷新18项纪录
  2. Python基于MASK信息抽取ROI子图实战:原始影像和mask文件都是二维的情况
  3. 小蠢笔记:从继承特性来看构造函数
  4. 7-26晚上实现mystring
  5. android:windowSoftInputMode属性详解
  6. 通过实例理解 Go 逃逸分析
  7. 论嵌入式与单片机,相爱相杀。
  8. 项目管理——任务分配闲谈
  9. 学习TeXworks编辑器(二)TAB补全详解与自定义补全命令总结
  10. 提升SQLite数据插入效率低、速度慢的方法
  11. 联想thinkpadE14 vm蓝屏问题解决
  12. 大型天燃气供应商遭勒索攻击、Log4Shell正在突变|12月15日全球网络安全热点
  13. python课程总结-Python课程学习总结
  14. uniapp生成高清海报图canvas
  15. Android程序配置热点IP,Android 10版本获取已连接本机热点的ip
  16. 计算机系统安全期末复习
  17. 使用 flying-saucer-pdf 实现html转换pdf补充
  18. java+mysql+javaweb网上购物系统
  19. RabbitMQ简介以及AMQP协议
  20. BBR 拥塞控制算法blog笔记

热门文章

  1. webpack2--webpack 4.X 快速创建demo
  2. WKWebView免登陆,配置cookie
  3. 华为工程师SRECon Asia见闻:聚焦可靠性、资源优化及性能提升
  4. 2018年全国多校算法寒假训练营练习比赛(第五场)题解
  5. 取存储过程output的取
  6. Android异步消息机制
  7. 论 MySql InnoDB 如何通过插入意向锁控制并发插入
  8. 第37件事 极简设计的3个方面
  9. Linux DNS服务的搭建
  10. 洛谷P1194 买礼物