+(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. The trip(Uva 11100)

    题目大意: 给出n个数,要求将其分成最少的递增序列,保证序列最少的同时要使得序列长度的最大值最小.  n<=10000 题解: 1.我是直接看着<训练指南>里的中文题面的,lrj似乎 ...

  2. 【转】Swift之 ? 和 !

    原文地址:http://joeyio.com/ios/2014/06/04/swift---/ Swift语言使用var定义变量,但和别的语言不同,Swift里不会自动给变量赋初始值,也就是说变量不会 ...

  3. 专家解读:BPM与OA的区别

    演进历程 传统OA 模块化架构,仅能满足管理执行的刚性效率,系统的专业化程度有限. BPM 平台化架构,管理要求精细化程度高,系统更专业化,更注重整合. BPM SAAS 基于云架构,跨组织社交化,系 ...

  4. storm启动过程之源码分析

    TopologyMaster: 处理拓扑的一些基本信息和工作,比如更新心跳信息,拓扑指标信息更新等   NimbusServer: ** * * NimbusServer work flow: 1. ...

  5. linux内核学习之四 系统调用

    一  概念区分 提到linux系统调用,不得不区分几个比较容易混淆的概念: 系统调用:系统调用就是一种特殊的接口.通过这个接口,用户可以访问内核空间.系统调用规定了用户进程进入内核的具体位置. 应用程 ...

  6. python 类、对象、方法、属性

    在python中,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) 结论:对象=属性+方法 在python中,把具有相同属性和方法的对象归为一个类(class) ...

  7. 基本矩阵运算的Java实现

      一: 矩阵的加法与减法 规则:矩阵的加法与减法要求两个矩阵的行列完全相等,方可以完成两个矩阵的之间的运算. 举例说明如下 二:矩阵的乘法 规则:矩阵的乘法要求两个矩阵符合A(mx k),  B( ...

  8. Total Commander 8.52 Beta 1

    Total Commander 8.52 Beta 1http://www.ghisler.com/852_b1.php 10.08.15 Release Total Commander 8.52 b ...

  9. Android 完整开源应用,完整开源项目

    (Antox)聊天的  (new)   (OpenKeychain)OpenPGP在android上的实现  (new)   (Flock)提供同步服务   (OpenFlappyBird)曾经火爆的 ...

  10. GreenDao数据库框架的配置与增删改查

    并非原创,原创地址http://blog.csdn.net/njweiyukun/article/details/51893092 配置-------------------------------- ...