• 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; }
  • 相关阅读:
    iOS 如何选择delegate、notification、KVO?
    iOS iOS8新特性--UIAlertController
    iOS 快速创建对象的类方法里的self
    iOS instancetype和id的区别
    ios UnitTest 学习笔记
    ios 框架学习笔记
    ios UI自动化测试学习笔记
    ios 开发常用快捷键
    ios 图形学习笔记
    ios 多任务学习笔记
  • 原文地址:https://www.cnblogs.com/liuwj/p/6648836.html
Copyright © 2020-2023  润新知