秒表---框架搭建

案例描写叙述:实现下图所看到的的效果。被时间函数什么的搞乱了,就仅仅搭了一个框架,详细实现的计时功能等整好了一起上传~~~ (看看这引入的n个头文件,俺也是醉了~)

效果图:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMjczNjQ0MzE=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" width="250" height="350" >

详细代码:

#import "JRTabBarController.h"

#import "MiaoBiaoNavigationController.h"

#import "MiaoBiaoViewController.h"

#import "JSQNavigationController.h"

#import "JSQViewController.h"

#import "NaoZhongViewController.h"

#import "NZNavigationController.h"

#import "SJSZNavigationController.h"

#import "SJSZViewController.h"

#define kLeftSpace 30  
//左边距

#define kRightSpace 30 
//右边距

#define kMiddleSpace 40
//中间空白距

#define kW self.view.frame.size.width

#define kH self.view.frame.size.height

@interface
JRTabBarController ()

//点击button切换图片

@property (nonatomic,strong)NSMutableArray * buttonArray;

@end

@implementation JRTabBarController

#pragma mark - 懒载入

- (NSMutableArray *)buttonArray

{

if (_buttonArray==nil)

{

_buttonArray=[NSMutableArray
array];

}

return 
_buttonArray;

}

- (void)viewDidLoad {

[super
viewDidLoad];

self.view.backgroundColor=[UIColor
whiteColor];

//1.载入控制器

[self
_loadVC];

//2.自己定义TabBar

[self
_makeTabBar];

}

#pragma mark - 载入控制器

- (void) _loadVC

{

//创建视图控制器

//世界时间

SJSZViewController * sjVC=[[SJSZViewController
alloc]init];

SJSZNavigationController * vc1=[[SJSZNavigationController
alloc]initWithRootViewController:sjVC];

//闹钟

NaoZhongViewController * nzVC=[[NaoZhongViewController
alloc]init];

NZNavigationController * vc2=[[NZNavigationController
alloc]initWithRootViewController:nzVC];

//秒表

MiaoBiaoViewController * mbVC=[[MiaoBiaoViewController
alloc]init];

//    mbVC.view.backgroundColor=[UIColor redColor];

MiaoBiaoNavigationController * vc3=[[MiaoBiaoNavigationController
alloc]initWithRootViewController:mbVC];

//计时器

JSQViewController * jsqVC=[[JSQViewController
alloc]init];

JSQNavigationController * vc4=[[JSQNavigationController
alloc]initWithRootViewController:jsqVC];

self.viewControllers=@[vc1,vc2,vc3,vc4];

self.selectedViewController=vc3;

}

#pragma mark - 自己定义TabBar

- (void) _makeTabBar

{

//1.定制TabBar

UIView * bgView=[[UIView
alloc] initWithFrame:CGRectMake(0,kH-49,kW,49)];

bgView.backgroundColor=[UIColor
whiteColor];

[self.view
addSubview:bgView];

//2.定制button

CGFloat space=(kW-kLeftSpace-kRightSpace-3*kMiddleSpace)/4; 
//每一个小button的宽度

for (int i=0; i<4; i++)

{

UITabBarButton * button=[[UITabBarButton
alloc]initWithFrame:CGRectMake(kLeftSpace+i*space+i*kMiddleSpace,
0, space, 49)];

button.backgroundColor=[UIColor
whiteColor];

button.tag=i;

NSString * imageName=[NSString
stringWithFormat:@"%d",i+1];

[button setImage:[UIImage
imageNamed:imageName] forState:UIControlStateNormal];

if (i==2)

{

NSString * imageName=[NSString
stringWithFormat:@"0%d",i+1];

[button setImage:[UIImage
imageNamed:imageName] forState:UIControlStateNormal];

}

[button addTarget:self
action:@selector(changeImage:)
forControlEvents:UIControlEventTouchUpInside];

button.delegateMe=self;

[self.buttonArray
addObject:button];

[bgView
addSubview:button];

}

}

- (void) changeImage:(UITabBarButton *) button

{

for (int i=0; i<4; i++)

{

if (i!=button.tag)

{

NSString * imageName=[NSString
stringWithFormat:@"%d",i+1];

UIButton *butt=self.buttonArray[i];

[butt setImage:[UIImage
imageNamed:imageName] forState:UIControlStateNormal];

}

}

[button.delegateMe
changePage:button.tag];

NSString * imageName=[NSString
stringWithFormat:@"0%d",(int)(button.tag+1)];

[button setImage:[UIImage
imageNamed:imageName] forState:UIControlStateNormal];

}

- (void)changePage:(NSInteger)index

{

[UIView
beginAnimations:nil
context:nil];

[UIView
commitAnimations];

self.selectedIndex=index;

}

@end

#import "MiaoBiaoViewController.h"

#define kW self.view.frame.size.width

#define kH self.view.frame.size.height

@interface
MiaoBiaoViewController ()

{

NSDateFormatter *fomatter;

NSInvocationOperation *operation1;

NSInvocationOperation *operation2;

}

//@property (nonatomic,weak)

@end

@implementation MiaoBiaoViewController

- (void)viewDidLoad {

[super
viewDidLoad];

self.title=@"秒表";

//小时钟

UILabel * conLabel=[[UILabel
alloc]initWithFrame:CGRectMake(267,
85, 110,
50)];

//    conLabel.backgroundColor=[UIColor redColor];

conLabel.text=@"00:00.00";

conLabel.font=[UIFont
fontWithName:nil
size:25];

[self.view
addSubview:conLabel];

//秒表

UILabel * ctLabel=[[UILabel
alloc]initWithFrame:CGRectMake(0,160,kW,150)];

//    ctLabel.backgroundColor=[UIColor redColor];

ctLabel.text=@"00:00.00";

ctLabel.textAlignment=NSTextAlignmentCenter;

ctLabel.font=[UIFont
fontWithName:nil
size:75];

[self.view
addSubview:ctLabel];

//下方视图

UIView * bView=[[UIView
alloc]initWithFrame:CGRectMake(0,350,kW,300)];

bView.backgroundColor=[UIColor
colorWithRed:0.1
green:0.1
blue:0.1
alpha:0.1];

[self.view
addSubview:bView];

//開始停止button

UIButton * ssButton=[[UIButton
alloc]initWithFrame:CGRectMake((kW-200)/3,
30, 100,
100)];

ssButton.backgroundColor=[UIColor
whiteColor];

ssButton.layer.cornerRadius=50;

[ssButton setTitle:@"開始"
forState:UIControlStateNormal];

[ssButton setTitle:@"停止"
forState:UIControlStateSelected];

[ssButton setTitleColor:[UIColor
redColor] forState:UIControlStateNormal];

[ssButton setTitleColor:[UIColor
grayColor] forState:UIControlStateSelected];

ssButton.tag=1;

[ssButton addTarget:self
action:@selector(StartStop:)
forControlEvents:UIControlEventTouchUpInside];

[bView
addSubview:ssButton];

//计次button

UIButton * jcButton=[[UIButton
alloc]initWithFrame:CGRectMake(((kW-200)/3)*2+100,
30, 100,
100)];

jcButton.backgroundColor=[UIColor
whiteColor];

jcButton.layer.cornerRadius=50;

[jcButton setTitle:@"计次"
forState:UIControlStateNormal];

[jcButton setTitleColor:[UIColor
blackColor] forState:UIControlStateNormal];

[jcButton addTarget:self
action:@selector(CountNum)
forControlEvents:UIControlEventTouchUpInside];

[bView
addSubview:jcButton];

}

- (void)StartStop:(UIButton *) button

{

button.selected = !button.selected;

NSLog(@"%i", button.selected);

NSLog(@"asdasdasd");

}

- (void)CountNum

{

NSLog(@"////////");

}

@end

PS:做一个小项目是最能考验一个人的综合水平,so,自觉水平太low了~ ~ ~   一定要好好补补课啊!。。( 心碎难补中~)

时间: 2025-01-21 22:35:10

秒表---框架搭建的相关文章

Spring MVC 框架搭建及详解

一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.jar.commons-logging.jar.cglib-nodep-2.1_3.jar Hibernate 3.6.8:hibernate3.jar.hibernate-jpa-2.0-api-1.0.1.Final.jar.antlr-2.7.6.jar.commons-collections-3

spring-websocket框架搭建遇到的问题解决方案汇总

问题1 org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to javax.websocket.server 严重: Servlet.service() for servlet [SpringMVC] in context with path [/ZHDM] threw exception [Request processing failed; nested exception is org.springfra

[CI] 使用CodeIgniter框架搭建RESTful API服务

在2011年8月的时候,我写了一篇博客<使用CodeIgniter框架搭建RESTful API服务>,介绍了RESTful的设计概念,以及使用CodeIgniter框架实现RESTful API的方法.转眼两年过去了,REST在这两年里有了很大的改进.我对于前一篇博客中的某些方面不是很满意,所以希望能利用这次机会写一个更加完善的版本.我的项目基于Phil Sturgeon的CodeIgniter REST Server,遵循他自己的DBAD协议.Phil的这个项目很棒,干净利落,简单实用,并

ssm框架搭建(上)

前言 之前也说过,工作做的开发都是基于公司现有的框架,心里很没底.所以一直想自己能够搭建出ssm框架.经过多次尝试,终于成功了.这边文章将从两个方面进行,一是框架搭建,二是简单的增删查改. 正文 1.环境搭建 这里采用现在流行的maven方式,而是将需要的jar放在web_inf\lib下面了. 直接贴了一张图,有点任性了...整个工程的结构如下图所示 在conf子包中,是配置文件.mapper下对应mybatis的映射文件,里面包含了相应的sql语句.(mvcLearn\conf\mapper

SSH(Struts2+Spring+Hibernate)框架搭建流程&lt;注解的方式创建Bean&gt;

此篇讲的是MyEclipse9工具提供的支持搭建自加包有代码也是相同:用户登录与注册的例子,表字段只有name,password. SSH,xml方式搭建文章链接地址:http://www.cnblogs.com/wkrbky/p/5912810.html 一.Hibernate(数据层)的搭建: 实现流程 二.Spring(注入实例)的使用: 实现流程 三.Struts2(MVC)的搭建: 实现流程 这里注意一点问题: Struts2与Hibernate在一起搭建,antlr包,有冲突.MyE

原创:Equinox OSGi应用嵌入Jersey框架搭建REST服务

一.环境 eclipse版本:eclipse-luna 4.4 jre版本:1.8 二.Equinox OSGi应用嵌入Jersey框架搭建REST服务 1.新建插件工程HelloWebOSGI a. b. c. d.在新建的工程中新建文件夹lib,其中放入附件中的jar包(见文末),全部添加到工程Build Path中. 2.配置运行环境 a.配置引入包.依赖插件 b.选择Run->Run Configuration,new一个环境 保留图中TargetPlatform中的16个Bundle.

新浪微博项目技术之一UI主框架搭建

一.项目整体框架搭建 二.UI主框架结构及知识点 1>.代码封装思想 封装前的代码:(四个标题需要重复写四次,重复代码较多) HomeViewController *HomeVC = [[HomeViewController alloc] init]; UINavigationController *HomeNV = [[UINavigationController alloc] initWithRootViewController:HomeVC]; //tabBarItem标题文字设置 Hom

第一节项目框架搭建

动软代码生成器的使用 创建三个类库项目DAL.BLL.Model,创建两个asp.net应用程序Web:Front(前台).Admin(后台管理).DAL引用Model,BLL引用Model和DAL,Web引用BLL和Model. 如果报错“添加服务器配置失败”,则以管理员身份运行“动软代码生成器”. (*)根据我的表命名规范,配置“动软”的“选项”→“代码生成器设置”,命名规则中“替换表中的字符”填“T_”(大小写敏感),“类命名规则”中,除了Model最后一个文本框留空之外,其他两个填BLL

mybatis框架搭建学习初步

mybatis框架搭建步骤:1. 拷贝jar到lib目录下,而且添加到工程中2. 创建mybatis-config.xml文件,配置数据库连接信息 <environments default="development"> <environment id="mysql"> <transactionManager type="JDBC"></transactionManager> <dataSou