//
// ViewController.m
// 猜谜语
//
// Created by Bruce on 15/8/13.
// Copyright (c) 2015年 Bruce. All rights reserved.
//
#import "ViewController.h"
#import "HTTPRequestManager.h"
#import "InfoModel.h"
@interface ViewController ()
{
NSTimer *runTimer;
UITextView *showView;
BOOL isShow;
}
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self createView];
[self loadData];
}
- (void)createView
{
showView = [[UITextView alloc]initWithFrame:self.view.frame];
showView.editable = NO;
showView.selectable = NO;
showView.font = [UIFont systemFontOfSize:40];
showView.textAlignment = NSTextAlignmentCenter;
showView.textColor = [UIColor brownColor];
[self.view addSubview:showView];
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(showAnswer)];
[self.view addGestureRecognizer:tap];
}
- (void)showAnswer
{
isShow = !isShow;
if (isShow!=NO) {
runTimer.fireDate = [NSDate distantFuture];
showView.textColor = [UIColor orangeColor];
showView.text = [InfoModel shareManager].Answer;
}else{
runTimer.fireDate = [NSDate distantPast];
showView.textColor = [UIColor brownColor];
showView.text = @"";
}
}
- (void)loadData
{
NSString *url = @"http://apis.baidu.com/myml/c1c/c1c";
[HTTPRequestManager sendGetRequestWithURL:url responseContent:^(id result) {
InfoModel *model = [InfoModel shareManager];
model.Title = result[@"Title"];
model.Answer = result[@"Answer"];
// 刷新UI 必须在主线程 刷新
[self performSelectorOnMainThread:@selector(next) withObject:nil waitUntilDone:YES];
}];
}
- (void)next
{
showView.text = [InfoModel shareManager].Title;
runTimer = [NSTimer scheduledTimerWithTimeInterval:10 target:self selector:@selector(loadData) userInfo:nil repeats:YES];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
//
// InfoModel.h
// 猜谜语
//
// Created by Bruce on 15/8/13.
// Copyright (c) 2015年 Bruce. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface InfoModel : NSObject
+ (instancetype)shareManager;
@property (nonatomic,copy) NSString *Title;
@property (nonatomic,copy) NSString *Answer;
@end
//
// InfoModel.m
// 猜谜语
//
// Created by Bruce on 15/8/13.
// Copyright (c) 2015年 Bruce. All rights reserved.
//
#import "InfoModel.h"
static InfoModel *model = nil;
@implementation InfoModel
+ (instancetype)shareManager
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
model = [[InfoModel alloc]init];
});
return model;
}
@end
HTTPRequestManager(缓冲效果)