+(NSArray*)splitCode:(NSString*)code backzoneIndex:(NSInteger*)outIndex
{
/*
01
0102|0304
010203040506|01
|01
*/
NSInteger backzoneIndex = ; NSArray* zoneArr = [code componentsSeparatedByString:@"|"];
if (nil == zoneArr || [zoneArr count] != )
return nil; NSMutableArray* splitArr = [NSMutableArray array];
NSString* prozoneStr = zoneArr[];
for (int i = ; i < [prozoneStr length]; i+= )
{
NSString* str = [prozoneStr substringWithRange:NSMakeRange(i, )];
[splitArr addObject:str];
}
backzoneIndex = [splitArr count]; NSString* backzoneStr = zoneArr[];
for (int i = ; i < [backzoneStr length]; i+= )
{
NSString* str = [backzoneStr substringWithRange:NSMakeRange(i, )];
[splitArr addObject:str];
}
*outIndex = backzoneIndex;
return splitArr;
} +(NSString*)stdCode:(NSString*)code
{
if ([CommonHelper isEmpty:code])
return @"";
//将,分隔,两位分隔,空格分隔的code转换成无分隔的code
NSRange r = [code rangeOfString:@","];
if (r.location != NSNotFound)
{
NSString* newCode = [code stringByReplacingOccurrencesOfString:@"," withString:@""];
return newCode;
}
r = [code rangeOfString:@" "];
{
NSString* newCode = [code stringByReplacingOccurrencesOfString:@" " withString:@","];
return newCode;
}
return code;
}
+(UIView*)makeLotteryView:(NSString*)code font:(UIFont*)font height:(CGFloat)height sep:(CGFloat)sep borderColor:(UIColor*)boderColor prozoneColor:(UIColor*)prozoneColor backzoneColor:(UIColor*)backzoneColor
{
NSString* stdCode = [MyLotteryShoppingCartViewController stdCode:code];
if ([CommonHelper isEmpty:stdCode])
return nil;
NSInteger backzoneIndex = ;
NSArray* codeArr = [MyLotteryShoppingCartViewController splitCode:stdCode backzoneIndex:&backzoneIndex];
if ([CommonHelper isEmptyArray:codeArr])
return nil;
NSInteger codeCount = [codeArr count];
CGFloat viewWidth = codeCount*height + (codeCount -)*sep;
UIView* contentView = [UIView new];
CGRect rect = CGRectMake(, ,viewWidth,height);
[contentView setFrame:rect];
CGFloat codeX = ;
CGFloat codeY = ;
CGFloat codeSep = sep;
CGFloat codeW = height;
CGFloat codeH = height;
for(int i = ; i< codeCount;i++)
{
NSString* codeStr = codeArr[i];
rect = CGRectMake(codeX, codeY, codeW, codeH);
UILabel* lblCode = [[UILabel alloc]initWithFrame:rect];
[lblCode setBackgroundColor:[UIColor clearColor]];
[lblCode setFont:font];
[lblCode.layer setCornerRadius:height/];
[lblCode.layer setMasksToBounds:YES];
[lblCode.layer setBorderWidth:];
lblCode.layer.borderColor = boderColor.CGColor;
[lblCode setTextColor:(i >= backzoneIndex) ? backzoneColor :prozoneColor];
[lblCode setText:codeStr];
[lblCode setTextAlignment:NSTextAlignmentCenter];
[contentView addSubview:lblCode];
codeX += codeW+ codeSep;
}
return contentView;
}

第一个版本,先用View顶过去,后面考虑drawRect,目前看对帧率是有影响的

彩票号码OC呈现的更多相关文章

  1. 第一个Python程序 | 机选彩票号码+爬取最新开奖号码

    (机选彩票号码+爬取最新开奖号码 | 2021-04-21) 学习记录,好记不如烂笔头 这个程序作用是<机选三种彩票类型的号码> 程序内包含功能有如下: 自动获取最新的三种彩票的开奖号码 ...

  2. java编写双色球源代码。-----系统作为彩票双色球生成器,模拟机选一注双色球的彩票号码

    package demo2; import java.util.Arrays; import java.util.Random; /** * 系统作为彩票双色球生成器,模拟机选一注双色球的彩票号码: ...

  3. EX14 彩票中奖 (lottery.pas/c/cpp)

    [题目描述]小明想试试运气去购买彩票,所以他开始研究彩票大乐透的玩法:超级大乐透是指由购买者从01—35共35个号码中选取5个号码为前区号码,并从01—12共12个号码中选取2个号码为后区号码组合为一 ...

  4. C# 5 break continue 球员成绩 彩票 选班长

        二.新课: 1.break与continue. 这两个关键字一般放在循环的花括号里面使用. break--结束整个循环. continue--结束本次循环,进入下次循环. break的案例: ...

  5. Python生成随机验证码,大乐透号码

    实例笔记之生成随机号码 扩展知识 - yield(生成器) 随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__' ...

  6. python写一个双色球彩票计算器

    首先声明,赌博一定不是什么好事,也完全没有意义,不要指望用彩票发财.之所以写这个,其实是用来练手的,可以参考这个来预测一些其他的东西,意在抛砖引玉. 啰嗦完了,马上开始,先上伪代码 打开网址 读取内容 ...

  7. 题解 P2550 【[AHOI2001]彩票摇奖】

    题目链接 大家有没有发现数据范围好小呀 我们只需要开7~8的数组就好!! 中间比较的时候懒得用for循环比较了.直接爆搜. 废话不多说,直接上代码. #include<bits/stdc++.h ...

  8. python快速教程-vamei

    2016年10月26日 12:00:53 今天开始着手python的学习,希望能高效快速的学完! Python基础(上)... 7 实验简介... 7 一.实验说明... 8 1. 环境登录... 8 ...

  9. c语言for循环

    #include<stdio.h>#include<windows.h>#include <limits.h>#include <math.h>void ...

随机推荐

  1. JavaScript拼图游戏

    今天是2016年最后一天上班了.最近几天都比较休闲,有时间空闲下来写写文档之类的. 2016过得真是快.感觉没做什么就过去了.想到之前想坚持每个月写一写博客都没坚持到.希望2017年可以吧. 无聊之余 ...

  2. Bootstrap学习笔记(一)

    一.什么是Bootstrap bootstrap是一款css框架,便于响应式设计. 二.怎样使用bootstarp 最常用的方法,在html结构中引入样式表bootstarp.min.css,以及jq ...

  3. struts入门实例

    入门实例 1  .下载struts-2.3.16.3-all  .不摆了.看哈就会下载了. 2  . 解压  后 找到 apps 文件夹. 3.    打开后将 struts2-blank.war   ...

  4. gif显示

    public void gifplay(string path,ref Panel panel) { try{ Bitmap animatedGif = new Bitmap(path ); Grap ...

  5. React Native + Nodejs 使用RSA加密登录

    想用rn做个RSA(非对称加密)登录 基本流程就是在服务端生成RSA后,将“公钥”发到客户端,然后客户端用“公钥”加密信息发送到服务端,服务务端用私钥解密. 过程不复杂,问题在于,nodejs和rn都 ...

  6. Python的入门要点

    一.输入 1.键盘输入 在python 2.7中,不用input(),而用 raw_input()读入一行键盘输入,并转化为字符串. s = map(int ,raw_input().split()) ...

  7. Secondary NameNode:的作用?

    前言 最近刚接触Hadoop, 一直没有弄明白NameNode和Secondary NameNode的区别和关系.很多人都认为,Secondary NameNode是NameNode的备份,是为了防止 ...

  8. AngularJs的UI组件ui-Bootstrap分享(九)——Alert

    alert指令会在页面上显示一条提示消息,效果是这样: 代码为: <!DOCTYPE html> <html ng-app="ui.bootstrap.demo" ...

  9. 基于WWF搭建的通用审批流程

    月明星稀,却不见明月:蛾儿雪柳暗香飘过,纵使回首千百回,却不知,心已灭:壮志未酬,却落得个多情应该笑我:扬帆起航,却不知,帆已破.这是我刚离职时的心情,曾几何时,真的想呆在一家公司,做一名优秀的技术管 ...

  10. UVa 1391 Astronauts (2SAT)

    题意:给出一些宇航员他们的年龄,x是他们的平均年龄,其中A任务只能给年龄大于等于x的人,B任务只能给小于x的人,C任务没有限制.再给出m对人,他们不能同任务.现在要你输出一组符合要求的任务安排. 思路 ...