创建版本新特性 页面(存放图片)
HMNewfeatureViewController.m
#define HMNewfeatureImageCount 4
#import "HMNewfeatureViewController.h"
#import "HMTabBarViewController.h" @interface HMNewfeatureViewController ()<UIScrollViewDelegate>
@property(nonatomic,weak) UIPageControl *pageControl; @end @implementation HMNewfeatureViewController - (void)viewDidLoad {
[super viewDidLoad]; //1.添加UISrollView
[self setupScrollView];
//2.添加pageControl
[self setupPageControl]; }
/**
*添加UISrollView
*
*/
-(void)setupScrollView
{
//添加UISrollView
UIScrollView *scrollView=[[UIScrollView alloc]init];
scrollView.frame=self.view.frame;
scrollView.delegate=self;
[self.view addSubview:scrollView]; //添加图片
CGFloat imageW=scrollView.width;
CGFloat imageH=scrollView.height;
for (int i=; i<HMNewfeatureImageCount; i++) {
//创建UIImageView
UIImageView *imageView=[[UIImageView alloc]init];
NSString *name=[NSString stringWithFormat:@"new_feature_%d",i+];
if(FourInch)
{
name=[name stringByAppendingString:name];
}
imageView.image=[UIImage imageNamed:name]; [scrollView addSubview:imageView]; //设置frame
imageView.y=;
imageView.x=i*imageW;
imageView.width=imageW;
imageView.height=imageH;
// 给最后一个imageView添加按钮
if (i == HMNewfeatureImageCount - ) {
[self setupLastImageView:imageView];
} } //3.设置其他属性
scrollView.contentSize=CGSizeMake(HMNewfeatureImageCount*imageW, );
scrollView.pagingEnabled=YES;//是否图片做分页显示
scrollView.showsHorizontalScrollIndicator=NO;//是否显示水平滚动条
scrollView.backgroundColor= HMColor(, , );
}
/**
*添加pageControl
*
*/
-(void)setupPageControl
{ //1.添加
UIPageControl *pageControl=[[UIPageControl alloc]init];
pageControl.numberOfPages=HMNewfeatureImageCount;
pageControl.centerX = self.view.width * 0.5;
pageControl.centerY=self.view.height-;
[self.view addSubview:pageControl]; //设置圆点的颜色
pageControl.currentPageIndicatorTintColor=HMColor(, , ); // 当前页的小圆点颜色
pageControl.pageIndicatorTintColor=HMColor(, , ); // 当前页的小圆点颜色 self.pageControl=pageControl;
} /**
*设置最后一个UIImageView的内容
*
*/
-(void)setupLastImageView:(UIImageView *)imageView
{ imageView.userInteractionEnabled=YES; //添加开始按钮
[self setupStartButton:imageView]; //添加分享按钮
[self setupShareButton:imageView];
}
/**
*添加开始按钮
*
*/
-(void)setupStartButton:(UIImageView *)imageView
{
//1.添加开始按钮
UIButton *startButton=[[UIButton alloc]init]; //2.设置背景图片
[startButton setBackgroundImage:[UIImage imageWithName:@"new_feature_finish_button"] forState:UIControlStateNormal];
[startButton setBackgroundImage:[UIImage imageWithName:@"new_feature_finish_button_highlighted"] forState:UIControlStateHighlighted]; //3.设置frame
startButton.size=startButton.currentBackgroundImage.size;
startButton.centerX=self.view.width*0.5;
startButton.centerY=self.view.height*0.8; //4.设置文字
[startButton setTitle:@"开始微博" forState:UIControlStateNormal];
[startButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [startButton addTarget:self action:@selector(start) forControlEvents:UIControlEventTouchUpInside]; [imageView addSubview:startButton];
}
/**
*开始微博
*
*/
-(void)start{ HMTabBarViewController *vc=[[HMTabBarViewController alloc]init]; //切换控制器
UIWindow *window=[UIApplication sharedApplication].keyWindow;
window.rootViewController=vc;
/*切换控制器的3种方式
// push : [self.navigationController pushViewController:vc animated:NO];
// modal : [self presentViewController:vc animated:NO completion:nil];
// window.rootViewController : window.rootViewController = vc;
*/
} /**
*添加分享按钮
*
*/
-(void)setupShareButton:(UIImageView *)imageView
{
//1.添加分享按钮
UIButton *shareButton=[[UIButton alloc]init]; //2.设置文字和图标
[shareButton setTitle:@"分享给大家" forState:UIControlStateNormal];
[shareButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[shareButton setImage:[UIImage imageWithName:@"new_feature_share_false"] forState:UIControlStateNormal];
[shareButton setImage:[UIImage imageWithName:@"new_feature_share_true"] forState:UIControlStateSelected]; //3. 设置frame
shareButton.size=CGSizeMake(, );
shareButton.centerX=self.view.width *0.5;
shareButton.centerY=self.view.height *0.7; //监听点击
[shareButton addTarget:self action:@selector(share:) forControlEvents:UIControlEventTouchUpInside]; // 4.设置间距
// top left bottom right
// 内边距 == 自切
// 被切掉的区域就不能显示内容了
// contentEdgeInsets : 切掉按钮内部的内容
// shareButton.contentEdgeInsets = UIEdgeInsetsMake(10, 20, 10, 20);
// imageEdgeInsets : 切掉按钮内部UIImageView的内容
// shareButton.imageEdgeInsets = UIEdgeInsetsMake(5, 5, 5, 5);
// titleEdgeInsets : 切掉按钮内部UILabel的内容
shareButton.titleEdgeInsets = UIEdgeInsetsMake(, , , ); [imageView addSubview:shareButton];
} /**
分享
*/
- (void)share:(UIButton *)shareButton
{
shareButton.selected = !shareButton.isSelected;
// UIImage *falseImage = [UIImage imageWithName:@"new_feature_share_false"];
// if (shareButton.currentImage == falseImage) {
// [shareButton setImage:[UIImage imageWithName:@"new_feature_share_true"] forState:UIControlStateNormal];
// } else {
// [shareButton setImage:falseImage forState:UIControlStateNormal];
// }
} #pragma mark--UIScrollViewDeleage
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{ //获得页码
CGFloat doublePage=scrollView.contentOffset.x /scrollView.width;
int intPage=(doublePage+0.5); //设置页码
self.pageControl.currentPage=intPage;
}
-(void)dealloc{
HMLog(@"dealloc----");
}
AppDelegate.m 调用HMNewfeatureViewController.m
#import "AppDelegate.h"
#import "HMTabBarViewController.h"
#import "HMNewfeatureViewController.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { application.statusBarHidden=NO; //1.创建窗口
self.window=[[UIWindow alloc]init];
self.window.frame=[UIScreen mainScreen].bounds; /*
//2.设置窗口的根控制器
UITabBarController *tabbarVc=[[HMTabBarViewController alloc]init];
self.window.rootViewController=tabbarVc;
*/ //如果知道第一次使用这个版本?比较上次的使用情况
NSString *versionKey=(__bridge NSString *)kCFBundleVersionKey; //从沙盒中取出上次存储的软件版本号(取出用户上次的使用记录)
NSUserDefaults *defaults=[NSUserDefaults standardUserDefaults];
NSString *lastVersion=[defaults objectForKey:versionKey]; //获得当前打开软件的版本号
NSString *currentVersion=[NSBundle mainBundle].infoDictionary[versionKey]; if([currentVersion isEqualToString:lastVersion])
{
self.window.rootViewController=[[HMTabBarViewController alloc]init];
}
else
{
//新特性页面
self.window.rootViewController= [[HMNewfeatureViewController alloc] init]; //存储这次使用的软件版本
[defaults setObject:currentVersion forKey:versionKey];
[defaults synchronize];
} //3.显示窗口(成为主窗口)
[self.window makeKeyAndVisible]; return YES;
}