+(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. Myeclipse安装SVN插件(转)

    方法一:在线安装 1.打开HELP->MyEclipse Configuration Center.切换到SoftWare标签页. 2.点击Add Site 打开对话框,在对话框Name输入Sv ...

  2. java 中关于synchronized的通常用法

    package j2se.thread.test; /*** * synchronized(class)很特别,它会让另一个线程在任何需要获取class做为monitor的地方等待. * class与 ...

  3. golang调用EXE

    我是win7+go1.7+liteide,调用calc.exe package main import ( "os/exec" ) func main() { datapath : ...

  4. LCD底层驱动分析

    根据分析的框架,自己写一个LCD驱动程序 1分析LCD硬件原理图 Von和Voff接的是一个电源电路,通过LCD_POWER接的是GPG4来控制LCD电源,高电平表示开启LCD电源 VM接的是CPU的 ...

  5. 关于CSS三列Float布局任务

    任务目标 掌握HTML/CSS布局的概念 掌握盒模型的概念 掌握position与float的概念以及在布局时的用法 任务描述 使用 HTML 与 CSS 按照示意图;实现三栏式布局. 左右两栏宽度固 ...

  6. 微软云创益大赛获奖团队风采:做一个中国特色的.Net源代码社区

    为了强化云技术,落地云应用,彰显云价值,微软(中国)携手中国计算机报举办了“微软Cloud OS第二届云创益大赛”.本届大赛历时111天,共吸引了6647位个人组选手回答了70,078道题,59支参赛 ...

  7. setNeedsDisplay,setNeedsLayout

    UIView的setNeedsDisplay和setNeedsLayout方法.首先两个方法都是异步执行的.setNeedsDisplay会调用自动调用drawRect方法,这样可以拿到UIGraph ...

  8. mac OS X Yosemite (10.10.5) 下 安装vim 7.4笔记

    摘要 前言 需求与mac OS X 自带vim版本的冲突 默认Python解释器问题 并非Mac自带python的 homebrew 1. 前言 本文为自己作死折腾的问题记录 2. 需求与mac OS ...

  9. SQLSERVER2008 不能用IP连接数据库问题

    本机安装的数据库只能用电脑名+"\"+实例名来访问,用“.”.“(local)”.“localhost”呀都不能访问.然后在网上挖资料呀,挖呀挖呀,终于挖到了解决办法. 1.不能用 ...

  10. 盲注----基于布尔的SQL盲注

    构造逻辑判断常用字符串截取函数http://www.cnblogs.com/yyccww/p/6054569.html常用函数left(a,b)  从左侧截取a的前b位right(a,b)  从右侧截 ...