iOS開発の道--微博新特性ページ
11936 ワード
BeyondApDelegate.m
//
// BeyondAppDelegate.m
// 20_ no
//
// Created by beyond on 14-8-3.
// Copyright (c) 2014 com.beyond. All rights reserved.
//
#import "BeyondAppDelegate.h"
#import "BeyondViewController.h"
#import "NewFeatureViewController.h"
#import "OauthViewController.h"
#define kVersionCodeKey (NSString *)kCFBundleVersionKey
@implementation BeyondAppDelegate
//
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 1,
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// 2,
self.window.backgroundColor = [UIColor whiteColor];
// 3, , app, , NewFeature ,
[self versionCodeCheck];
// 4,
[self.window makeKeyAndVisible];
return YES;
}
// , app, , NewFeature ,
- (void)versionCodeCheck
{
// 1, ,
NSString *oldVersionCode = [[NSUserDefaults standardUserDefaults] objectForKey:kVersionCodeKey];
NSString *currentVersionCode = [[[NSBundle mainBundle]infoDictionary] objectForKey:kVersionCodeKey];
//
//[self stepIntoViewController:currentVersionCode oldVersion:oldVersionCode];
//return;
#warning block test -=============== , , block
if ([currentVersionCode isEqualToString:oldVersionCode]) {
//if(0){
[self enterBeyondVC];
} else {
// ,
[[NSUserDefaults standardUserDefaults]setObject:currentVersionCode forKey:kVersionCodeKey];
//
NewFeatureViewController *newVC = [[NewFeatureViewController alloc]init];
newVC.startBlock = ^(BOOL isSelected){
log(@"%d",isSelected);
[self enterBeyondVC];
};
self.window.rootViewController = newVC;
}
}
#warning block test
- (void) enterBeyondVC
{
// 1, Oauth , , Oauth
if (1) {
OauthViewController *oauthVC = [[OauthViewController alloc]init];
self.window.rootViewController = oauthVC;
return;
}
//
BeyondViewController *vc =[[BeyondViewController alloc]init];
self.window.rootViewController = vc;
}
- (void)stepIntoViewController:(NSString *)curVersion oldVersion:(NSString *)oldVersion
{
//
UIViewController *rootViewController = nil;
#warning view
if ([curVersion isEqualToString:oldVersion]) {
// if (0){
// , ,
// ( , ) ios 7
// [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
rootViewController = [[BeyondViewController alloc]init];
} else {
// , , ,
// ( , ) ios 7
// [UIApplication sharedApplication].statusBarHidden = YES;
// [[UIApplication sharedApplication]setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
rootViewController = [[NewFeatureViewController alloc]init];
// ,
[[NSUserDefaults standardUserDefaults]setObject:curVersion forKey:kVersionCodeKey];
}
// ,
self.window.rootViewController = rootViewController;
}
@end
NewFeature View Controller.h
//
// NewFeatureViewController.h
// 20_ no
//
// Created by beyond on 14-8-3.
// Copyright (c) 2014 com.beyond. All rights reserved.
// , ,
#import <UIKit/UIKit.h>
@interface NewFeatureViewController : UIViewController
// block , , ,
// block copy
@property (nonatomic,copy) void(^startBlock)(BOOL isShare);
@end
NewFeature View Controller.m
//
// NewFeatureViewController.m
// 20_ no
//
// Created by beyond on 14-8-3.
// Copyright (c) 2014 com.beyond. All rights reserved.
// , ,
/*
:
, :
x y
, :
userinteraction = no
userinteraction = no
pageController , 0,
4, : center, bounds
5,
normal:
highlighted : ( )
disabled : ( )
selected : ( )
*/
#import "NewFeatureViewController.h"
#define kPicNum 4
#warning viewSize kWinSize
#define viewSize self.view.bounds.size
@interface NewFeatureViewController ()<UIScrollViewDelegate>
{
//
UIPageControl *_pageControl;
//
UIButton *_shareBtn;
}
@end
@implementation NewFeatureViewController
- (BOOL)prefersStatusBarHidden
{
// LoadView
NSLog(@"prefers bar hidden");
return YES;
}
- (void)loadView
{
NSLog(@"load view");
// , imageView view, ImageView scrollView
UIImageView *imgView = [[UIImageView alloc]init];
// view( imgView)
imgView.frame = [UIScreen mainScreen].bounds;
NSLog(@"%@",NSStringFromCGRect(imgView.frame));
// , iphone5, -568h
imgView.image = [UIImage fullScrennImageNamed:@"new_feature_background.png"];
// view
imgView.userInteractionEnabled = YES;
// imgeView view
self.view = imgView;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(@"view did load ");
// 1, , UIScrollView, UIImageView, ImageView
[self addUIScrollView];
// 2, , UIPageControl
[self addUIPageControl];
}
// , UIScrollView, UIImageView, ImageView
- (void) addUIScrollView
{
// 1. UIScrollView, UIImageView, ImageView
UIScrollView *scrollView = [[UIScrollView alloc] init];
//
scrollView.frame = self.view.bounds;
//
scrollView.showsHorizontalScrollIndicator = NO;
//
scrollView.pagingEnabled = YES;
//
scrollView.contentSize = CGSizeMake(kPicNum * viewSize.width, 0);
//
scrollView.delegate = self;
// self.view ImageView
[self.view addSubview:scrollView];
// 2, kPicNum kPicNum imageView scrollView
for (int i = 0; i<kPicNum; i++) {
[self addImageViewToScrollView:scrollView atIndex:i];
}
}
// , UIPageControl
- (void) addUIPageControl
{
// 1, UIPageControl
_pageControl = [[UIPageControl alloc] init];
// center, bounds
_pageControl.center = CGPointMake(viewSize.width * 0.5, viewSize.height * 0.95);
_pageControl.bounds = CGRectMake(0, 0, 100, 0);
//
_pageControl.numberOfPages = kPicNum;
// ~
_pageControl.pageIndicatorTintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"new_feature_pagecontrol_point.png"]];
_pageControl.currentPageIndicatorTintColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"new_feature_pagecontrol_checked_point.png"]];
//
_pageControl.userInteractionEnabled = NO;
// self.view ImageView
[self.view addSubview:_pageControl];
}
// scrollView , PageControl , ( scrollview )
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
// x
_pageControl.currentPage = scrollView.contentOffset.x / scrollView.frame.size.width;
}
// , kPicNum kPicNum imageView scrollView
- (void)addImageViewToScrollView:(UIScrollView *)scrollView atIndex:(int)i
{
// 1. imageview
UIImageView *imageView = [[UIImageView alloc] init];
// , frame , CGRect
imageView.frame = (CGRect){{i * viewSize.width, 0} , viewSize};
// 2.
NSString *name = [NSString stringWithFormat:@"new_feature_%d.png", i + 1];
// , iphone5, -568h
imageView.image = [UIImage fullScrennImageNamed:name];
// 3.
[scrollView addSubview:imageView];
// 4. , 2 ( 、 )
if (i == kPicNum - 1) {
// imageView , 2
imageView.userInteractionEnabled = YES;
// , ,
[self addStartBtnInImageView:imageView];
// , , ,
[self addShareBtnInImageView:imageView];
}
}
// , ,
- (void) addShareBtnInImageView:(UIImageView *)imageView
{
// 2.1.
_shareBtn = [UIButton buttonWithType:UIButtonTypeCustom];
// imageView
[imageView addSubview:_shareBtn];
// 2.2.
// , ,
CGSize shareBtnNormalBgImgSize = [_shareBtn setBtnBgImgForNormalAndSelectedWithName:@"new_feature_share_false.png" selectedName:@"new_feature_share_true.png"];
// 2.3. ( , center, bounds)
_shareBtn.center = CGPointMake(viewSize.width * 0.5, viewSize.height * 0.75);
// ,
_shareBtn.bounds = (CGRect){CGPointZero, shareBtnNormalBgImgSize};
// 2.4.
[_shareBtn addTarget:self action:@selector(shareBtnClick:) forControlEvents:UIControlEventTouchUpInside];
// 2.5.
_shareBtn.adjustsImageWhenHighlighted = NO;
// 2.6.
_shareBtn.selected = YES;
}
// , , ( , )
- (void)shareBtnClick:(UIButton *)shareBtn
{
shareBtn.selected = !shareBtn.isSelected;
}
// , ,
- (void) addStartBtnInImageView:(UIImageView *)imageView
{
// 1.1.
//
UIButton *startBtn = [UIButton buttonWithType:UIButtonTypeCustom];
// imageView
[imageView addSubview:startBtn];
// 1.2.
// , ,
CGSize startBtnBgImgSize = [startBtn setBtnBgImgForNormalAndHighightedWithName:@"new_feature_finish_button.png"];
// 1.3.
startBtn.center = CGPointMake(viewSize.width * 0.5, viewSize.height * 0.85);
//
startBtn.bounds = (CGRect){CGPointZero, startBtnBgImgSize};
// 1.4.
[startBtn addTarget:self action:@selector(startBtnClick) forControlEvents:UIControlEventTouchUpInside];
}
// , block , : ,
- (void)startBtnClick
{
// block ( )
if (_startBlock) {
_startBlock(_shareBtn.isSelected);
}
}
@end