<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 一:效果 這里實現了大多數app都會有的軟件新特性的功能,用的是UICollectionViewController實現的? ![](https://box.kancloud.cn/2016-01-20_569f1d98d93f5.jpg) ## 二:思路 這里用了UICollectionViewController實現,就是做一個沒有間隙,每個cell都是一個屏幕的UICollectionViewController,自定義的。然后把下面的UIPageControl 還有最后一頁的開始以及分享按鈕放入就OK了。 調用的時候,首先獲取當前的app的版本號,然后再獲取上一個版本。進行兩個版本的比較。當前版本和上一個版本不同,當前版本是從infoDictionary中拿到的,上一個版本是從自己存的NSUserDefaults 中的NYVersionKey拿到的,并且蘋果允許上傳小于當前版本的app,如果是第一個版本時候,上一個版本還沒有值,也會不同。? 根據結果設置window的不同根控制器。 自定義UICollectionViewController步驟:? 要注意:? 1.初始化的時候設置布局參數? 2.collertionView必須注冊cell? 3.自定義cell ## 三:代碼 調用部分代碼:AppDelegate ~~~ //1,獲取當前的版本號 NSString *currentVersion = [NSBundle mainBundle].infoDictionary[@"CFBundleVersion"]; //2,獲取上一次的版本號 NSString *lastVersion = [[NSUserDefaults standardUserDefaults]objectForKey:NYVersionKey]; NYLog(@"currentVersion == %@ , lastVersion == %@ ",currentVersion, lastVersion); //判斷是否有新的版本 if ([currentVersion isEqualToString:lastVersion]) { //如果沒有新的版本(當前版本和上一個版本不同,當前版本是從infoDictionary中拿到的,上一個版本是從自己存的NSUserDefaults 中的NYVersionKey拿到的,并且蘋果允許上傳小于當前版本的app,如果是第一個版本時候,上一個版本還沒有值,也會不同。) //創建tabBarVC NYTabBarController *tabBarVC = [[NYTabBarController alloc]init]; //設置窗口跟控制器 self.window.rootViewController = tabBarVC; }else{//如果有新的版本 //進入新特性界面 NYNewFeatureController *newFeatureVC = [[NYNewFeatureController alloc]init]; newFeatureVC.view.backgroundColor = [UIColor redColor]; self.window.rootViewController = newFeatureVC; //用偏好設置,保存當前版本。 [[NSUserDefaults standardUserDefaults]setObject:currentVersion forKey:NYVersionKey]; } ~~~ * * * 自定義的collectionViewController ### NYNewFeatureController.m ~~~ // // NYNewFeatureController.m // 貓貓微博 // // Created by apple on 15-8-1. // Copyright (c) 2015年 znycat. All rights reserved. // #import "NYNewFeatureController.h" #import "NYNewFeatureCell.h" @interface NYNewFeatureController () @property (nonatomic, weak) UIPageControl *control; @end @implementation NYNewFeatureController static NSString * const reuseIdentifier = @"cell"; - (void)viewDidLoad { [super viewDidLoad]; //注冊cell,默認就會創建這個類型的cell [self.collectionView registerClass:[NYNewFeatureCell class] forCellWithReuseIdentifier:reuseIdentifier]; //分頁 self.collectionView.pagingEnabled = YES; //取消彈簧效果 self.collectionView.bounces = NO; //不顯示滾動條 self.collectionView.showsHorizontalScrollIndicator = NO; // 添加pageController [self setUpPageControl]; // Do any additional setup after loading the view. } // 添加pageController - (void)setUpPageControl { // 添加pageController,只需要設置位置,不需要管理尺寸 UIPageControl *control = [[UIPageControl alloc] init]; control.numberOfPages = 4; control.pageIndicatorTintColor = [UIColor blackColor]; control.currentPageIndicatorTintColor = [UIColor redColor]; // 設置center control.center = CGPointMake(self.view.width * 0.5, self.view.height); _control = control; [self.view addSubview:control]; } /*使用UICollectionViewController要注意: 1.初始化的時候設置布局參數 2.collertionView必須注冊cell 3.自定義cell */ -(instancetype)init { // UICollectionViewFlowLayout *layout = [[UICollectionViewFlowLayout alloc]init]; //設置cell的尺寸 layout.itemSize = [UIScreen mainScreen].bounds.size; //清空cell間隔的行距 layout.minimumLineSpacing = 0; //設置cell的滑動方向 layout.scrollDirection = UICollectionViewScrollDirectionHorizontal; return [super initWithCollectionViewLayout:layout]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } #pragma mark - UICollectionView代理和數據源 - (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView { return 1; } - (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section { return 4; } - (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { // dequeueReusableCellWithReuseIdentifier // 1.首先從緩存池里取cell // 2.看下當前是否有注冊Cell,如果注冊了cell,就會幫你創建cell // 3.沒有注冊,報錯 NYNewFeatureCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath]; // 拼接圖片名稱 3.5 320 480 CGFloat screenH = [UIScreen mainScreen].bounds.size.height; NSString *imageName = [NSString stringWithFormat:@"new_feature_%ld",indexPath.row + 1]; if (screenH > 480) { // 5 , 6 , 6 plus imageName = [NSString stringWithFormat:@"new_feature_%ld-568h",indexPath.row + 1]; } cell.image = [UIImage imageNamed:imageName]; [cell setIndexPath:indexPath count:4]; return cell; } #pragma mark - UIScrollView代理 // 只要一滾動就會調用 - (void)scrollViewDidScroll:(UIScrollView *)scrollView { // 獲取當前的偏移量,計算當前第幾頁 int page = scrollView.contentOffset.x / scrollView.bounds.size.width + 0.5; // 設置頁數 _control.currentPage = page; } @end ~~~ 自定義的cell ### NYNewFeatureCell.h ~~~ // // NYNewFeatureCell.h // 貓貓微博 // // Created by apple on 15-8-1. // Copyright (c) 2015年 znycat. All rights reserved. // #import <UIKit/UIKit.h> @interface NYNewFeatureCell : UICollectionViewCell @property (nonatomic, strong) UIImage *image; // 判斷是否是最后一頁 - (void)setIndexPath:(NSIndexPath *)indexPath count:(int)count; @end ~~~ ### NYNewFeatureCell.m ~~~ // // NYNewFeatureCell.m // 貓貓微博 // // Created by apple on 15-8-1. // Copyright (c) 2015年 znycat. All rights reserved. // #import "NYNewFeatureCell.h" #import "NYTabBarController.h" @interface NYNewFeatureCell() @property (nonatomic, weak) UIImageView *imageView; //分享按鈕 @property (nonatomic, weak) UIButton *shareButton; //開始按鈕 @property (nonatomic, weak) UIButton *startButton; @end @implementation NYNewFeatureCell //分享按鈕懶加載 - (UIButton *)shareButton { if (_shareButton == nil) { UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom]; [btn setTitle:@"分享給大家" forState:UIControlStateNormal]; [btn setImage:[UIImage imageNamed:@"new_feature_share_false"] forState:UIControlStateNormal]; [btn setImage:[UIImage imageNamed:@"new_feature_share_true"] forState:UIControlStateSelected]; [btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]; [btn sizeToFit]; [self.contentView addSubview:btn]; _shareButton = btn; } return _shareButton; } //開始按鈕懶加載 - (UIButton *)startButton { if (_startButton == nil) { UIButton *startBtn = [UIButton buttonWithType:UIButtonTypeCustom]; [startBtn setTitle:@"開始微博" forState:UIControlStateNormal]; [startBtn setBackgroundImage:[UIImage imageNamed:@"new_feature_finish_button"] forState:UIControlStateNormal]; [startBtn setBackgroundImage:[UIImage imageNamed:@"new_feature_finish_button_highlighted"] forState:UIControlStateHighlighted]; [startBtn sizeToFit]; [startBtn addTarget:self action:@selector(start) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:startBtn]; _startButton = startBtn; } return _startButton; } -(UIImageView *)imageView { if (_imageView == nil) { UIImageView *imageV = [[UIImageView alloc]init]; _imageView = imageV; // 注意:一定要加載contentView [self.contentView addSubview:imageV]; } return _imageView; } // 布局子控件的frame -(void)layoutSubviews { [super layoutSubviews]; self.imageView.frame = self.bounds; // 分享按鈕 self.shareButton.center = CGPointMake(self.width * 0.5, self.height * 0.8); // 開始按鈕 self.startButton.center = CGPointMake(self.width * 0.5, self.height * 0.9); } -(void)setImage:(UIImage *)image { _image = image; self.imageView.image = image; } // 判斷當前cell是否是最后一頁 -(void)setIndexPath:(NSIndexPath *)indexPath count:(int)count { if (indexPath.row == count - 1) { // 最后一頁,顯示分享和開始按鈕 self.shareButton.hidden = NO; self.startButton.hidden = NO; }else{ // 非最后一頁,隱藏分享和開始按鈕 self.shareButton.hidden = YES; self.startButton.hidden = YES; } } // 點擊開始微博的時候調用 - (void)start { // 進入tabBarVc NYTabBarController *tabBarVc = [[NYTabBarController alloc] init]; // 切換根控制器:可以直接把之前的根控制器清空 NYKeyWindow.rootViewController = tabBarVc; } @end ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看