IOS 制作版本新特性

创建版本新特性 页面(存放图片)

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=0; i<HMNewfeatureImageCount; i++) {
        //创建UIImageView
        UIImageView *imageView=[[UIImageView alloc]init];
        NSString *name=[NSString stringWithFormat:@"new_feature_%d",i+1];
        if(FourInch)
        {
            name=[name stringByAppendingString:name];
        }
        imageView.image=[UIImage imageNamed:name];
        
        [scrollView addSubview:imageView];
        
        //设置frame
        imageView.y=0;
        imageView.x=i*imageW;
        imageView.width=imageW;
        imageView.height=imageH;
        // 给最后一个imageView添加按钮
        if (i == HMNewfeatureImageCount - 1) {
            [self setupLastImageView:imageView];
        }

    }
    
    //3.设置其他属性
    scrollView.contentSize=CGSizeMake(HMNewfeatureImageCount*imageW, 0);
    scrollView.pagingEnabled=YES;//是否图片做分页显示
    scrollView.showsHorizontalScrollIndicator=NO;//是否显示水平滚动条
    scrollView.backgroundColor= HMColor(246, 246, 246);
}
/**
 *添加pageControl
 *
 */
-(void)setupPageControl
{

    //1.添加
    UIPageControl *pageControl=[[UIPageControl alloc]init];
    pageControl.numberOfPages=HMNewfeatureImageCount;
    pageControl.centerX = self.view.width * 0.5;
    pageControl.centerY=self.view.height-30;
    [self.view addSubview:pageControl];
    
    //设置圆点的颜色
    pageControl.currentPageIndicatorTintColor=HMColor(253, 98, 42);    // 当前页的小圆点颜色
    pageControl.pageIndicatorTintColor=HMColor(189, 189, 189); // 当前页的小圆点颜色

    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(150, 35);
    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(0, 10, 0, 0);
    
    [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----");
}
View Code

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; }
原文地址:https://www.cnblogs.com/liuwj/p/6648836.html