1.新特性声明时候的两种方法
// //添加window的根视图控制器,UITabBarController // // if (![[NSUserDefaults standardUserDefaults]boolForKey:@"1"]) { // [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"1"]; // NewFeatureController * newFeature=[[NewFeatureController alloc] init]; // self.window.rootViewController=newFeature; // [newFeature release]; // // } // // else{ // TarbarViewController * tabBarVC = [[TarbarViewController alloc] init]; // self.window.rootViewController = tabBarVC; // [tabBarVC release]; // // } NSString *key = @"CFBundleVersion"; // 取出沙盒中存储的上次使用软件的版本号 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSString *lastVersion = [defaults stringForKey:key]; // 获得当前软件的版本号 NSString *currentVersion = [NSBundle mainBundle].infoDictionary[key]; if ([currentVersion isEqualToString:lastVersion]) { // 显示状态栏 // [UIApplication sharedApplication].statusBarHidden = NO; [UIApplication sharedApplication].keyWindow.rootViewController = [[TarbarViewController alloc] init]; } else { // 新版本 [UIApplication sharedApplication].keyWindow.rootViewController = [[NewFeatureController alloc] init]; // 存储新版本 [defaults setObject:currentVersion forKey:key]; [defaults synchronize]; }
2.新特性的代码
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. // 1.添加UISrollView [self setupScrollView]; // 2.添加pageControl [self setupPageControl]; } /** * 添加pageControl */ - (void)setupPageControl { // 1.添加 UIPageControl *pageControl = [[UIPageControl alloc] init]; pageControl.numberOfPages = IWNewfeatureImageCount; CGFloat centerX = self.view.frame.size.width * 0.5; CGFloat centerY = self.view.frame.size.height - 30; pageControl.center = CGPointMake(centerX, centerY); pageControl.bounds = CGRectMake(0, 0, 100, 30); pageControl.userInteractionEnabled = NO; [self.view addSubview:pageControl]; self.pageControl = pageControl; // 2.设置圆点的颜色 pageControl.currentPageIndicatorTintColor = SZColor(253, 98, 42); pageControl.pageIndicatorTintColor = SZColor(189, 189, 189); [pageControl release]; } /** * 添加UISrollView */ - (void)setupScrollView { UIScrollView *scrollView = [[UIScrollView alloc] init]; scrollView.frame = self.view.bounds; scrollView.delegate = self; [self.view addSubview:scrollView]; // 2.添加图片 CGFloat imageW = scrollView.frame.size.width; CGFloat imageH = scrollView.frame.size.height; for (int index = 0; index<IWNewfeatureImageCount; index++) { UIImageView *imageView = [[UIImageView alloc] init]; // 设置图片 NSString *name = nil; name = [NSString stringWithFormat:@"login_introduce_bg%d.jpg", index + 1]; imageView.image = [UIImage imageNamed:name]; // 设置frame CGFloat imageX = index * imageW; imageView.frame = CGRectMake(imageX, 0, imageW, imageH); [scrollView addSubview:imageView]; // 在最后一个图片上面添加按钮 if (index == IWNewfeatureImageCount - 1) { [self setupLastImageView:imageView]; } } // 3.设置滚动的内容尺寸 scrollView.contentSize = CGSizeMake(imageW * IWNewfeatureImageCount, 0); scrollView.showsHorizontalScrollIndicator = NO; scrollView.pagingEnabled = YES; scrollView.bounces = NO; } - (void)setupLastImageView:(UIImageView *)imageView { // 0.让imageView能跟用户交互 imageView.userInteractionEnabled = YES; // 1.添加开始按钮 UIButton *startButton = [[UIButton alloc] init]; startButton.backgroundColor = [UIColor redColor]; [startButton setBackgroundImage:[UIImage imageNamed:@"new_feature_finish_button"] forState:UIControlStateNormal]; [startButton setBackgroundImage:[UIImage imageNamed:@"new_feature_finish_button_highlighted"] forState:UIControlStateHighlighted]; // 2.设置frame CGFloat centerX = imageView.frame.size.width * 0.5; CGFloat centerY = imageView.frame.size.height * 0.6; startButton.center = CGPointMake(centerX, centerY); startButton.bounds = (CGRect){CGPointZero, startButton.currentBackgroundImage.size}; // 3.设置文字 [startButton setTitle:@"开始旅行" forState:UIControlStateNormal]; [startButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; [startButton addTarget:self action:@selector(start) forControlEvents:UIControlEventTouchUpInside]; [imageView addSubview:startButton]; // 4.添加checkbox UIButton *checkbox = [[UIButton alloc] init]; checkbox.selected = NO; [checkbox setTitle:@"分享给大家" forState:UIControlStateNormal]; [checkbox setImage:[UIImage imageNamed:@"new_feature_share_false"] forState:UIControlStateNormal]; [checkbox setImage:[UIImage imageNamed:@"new_feature_share_true"] forState:UIControlStateSelected]; checkbox.bounds = CGRectMake(0, 0, 200, 50); CGFloat checkboxCenterX = centerX; CGFloat checkboxCenterY = imageView.frame.size.height * 0.5; checkbox.center = CGPointMake(checkboxCenterX, checkboxCenterY); [checkbox setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; checkbox.titleLabel.font = [UIFont systemFontOfSize:15]; [checkbox addTarget:self action:@selector(checkboxClick:) forControlEvents:UIControlEventTouchUpInside]; // checkbox.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0); checkbox.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, 10); // checkbox.contentEdgeInsets = UIEdgeInsetsMake(10, 10, 10, 10); [imageView addSubview:checkbox]; } /** * 开始微博 */ - (void)start { // 显示状态栏 [UIApplication sharedApplication].statusBarHidden = NO; // 切换窗口的根控制器 TarbarViewController * tabbarVC = [[TarbarViewController alloc] init]; self.view.window.rootViewController = tabbarVC; [tabbarVC release]; } - (void)checkboxClick:(UIButton *)checkbox { checkbox.selected = !checkbox.isSelected; if (checkbox.selected == YES) { //这里是示例用了友盟的分享 [UMSocialSnsService presentSnsIconSheetView:self appKey:@"5475c280fd98c52865000704" shareText:@"图话旅行,更浪漫的旅行" shareImage:[UIImage imageNamed:@"shared.jpg"] shareToSnsNames:[NSArray arrayWithObjects:UMShareToSina,UMShareToDouban,UMShareToTencent,UMShareToRenren, nil] delegate:nil]; } } /** * 只要UIScrollView滚动了,就会调用 * */ - (void)scrollViewDidScroll:(UIScrollView *)scrollView { // 1.取出水平方向上滚动的距离 CGFloat offsetX = scrollView.contentOffset.x; // 2.求出页码 double pageDouble = offsetX / scrollView.frame.size.width; int pageInt = (int)(pageDouble + 0.5); self.pageControl.currentPage = pageInt; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. }