最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

iOS多控制器實(shí)現(xiàn)帶滑動(dòng)動(dòng)畫(huà)第1/2頁(yè)

 更新時(shí)間:2018年06月30日 12:00:09   作者:coderMy  
這篇文章主要為大家詳細(xì)介紹了iOS多控制器實(shí)現(xiàn)帶滑動(dòng)動(dòng)畫(huà),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了iOS多控制器實(shí)現(xiàn)帶滑動(dòng)動(dòng)畫(huà)的具體代碼,供大家參考,具體內(nèi)容如下

主控制器 ,管理控制器 .h文件

//宏
#define kScreenWidth [UIScreen mainScreen].bounds.size.width
#define kScreenHeight [UIScreen mainScreen].bounds.size.height

#import "MYMainViewController.h"
#import "MYFirstViewController.h"
#import "MYSecondViewController.h"
#import "MYThirdViewController.h"

@interface MYMainViewController ()<UIScrollViewDelegate>
//控制器名
@property (nonatomic, strong) NSArray *VcNames;
//選擇欄
@property(nonatomic, strong) UIView *clickBar;
//底部容器scrollView
@property (strong, nonatomic) UIScrollView *containerScrollerView;

@end

. m 文件

底部scrollView , 用于滑動(dòng)

@implementation MYMainViewController

- (UIScrollView *)containerScrollerView
{
  if (!_containerScrollerView) {
    _containerScrollerView = [[UIScrollView alloc]init];
    _containerScrollerView.pagingEnabled = YES;
    _containerScrollerView.showsVerticalScrollIndicator = NO;
    _containerScrollerView.showsHorizontalScrollIndicator = NO;
    _containerScrollerView.contentSize = CGSizeMake(kScreenWidth *self.VcNames.count,kScreenHeight);
    _containerScrollerView.backgroundColor = [UIColor whiteColor];
    _containerScrollerView.delegate = self;
  }
  return _containerScrollerView;
}

初始化頂部選擇欄

//三個(gè)子控制器
- (NSArray *)VcNames
{
  if (!_VcNames) {
    _VcNames = @[@"控制器一",@"控制器二",@"控制器三"];
  }
  return _VcNames;
}

//點(diǎn)擊選擇欄
- (UIView *)clickBar
{
  if (!_clickBar) {
    _clickBar = [[UIView alloc]init];
    _clickBar.backgroundColor = [UIColor lightGrayColor];

    CGFloat width = kScreenWidth / 3;
    CGFloat height = 44;
    //初始化按鈕
    for (NSInteger index = 0; index < 3; index++) {

      UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
      [button setTitle:self.VcNames[index] forState:UIControlStateNormal];
      [button setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
      button.frame = (CGRect){width *index,0,width,height};
      [button addTarget:self action:@selector(buttonClick:) forControlEvents:UIControlEventTouchUpInside];

      //綁定tag值
      button.tag = index;
      [_clickBar addSubview:button];
    }
  }
  return _clickBar;
}

viewDidLoad

- (void)viewDidLoad {
  [super viewDidLoad];

  self.edgesForExtendedLayout = 0;
  //初始化選擇欄
  [self initClickBar];

  //初始化底部scrollView容器
  [self initScrollViewContainer];

  //初始化子控制器
  [self addChildControllers];

}

添加子控制器 , 初始化UI

//按鈕選擇欄
- (void)initClickBar
{
  [self.view addSubview:self.clickBar];
  self.clickBar.frame = (CGRect){0,0,[UIScreen mainScreen].bounds.size.width,44};
}

//初始化滑動(dòng)容器
- (void)initScrollViewContainer
{
  [self.view addSubview:self.containerScrollerView];
  self.containerScrollerView.frame = CGRectMake(0,44,kScreenWidth, kScreenHeight );
}

//添加子控制器
- (void)addChildControllers
{
  //為了方便直觀(guān) , 在此處設(shè)置背景色 (實(shí)際開(kāi)發(fā)中,不能在這里設(shè)置 , 原因是這里只要調(diào)用到了控制器的view屬性 , 該控制器將會(huì)執(zhí)行viewDidLoad方法 , 相當(dāng)于直接一開(kāi)始就將三個(gè)控制器的所有UI和網(wǎng)絡(luò)請(qǐng)求全加載完了 , 負(fù)荷會(huì)相當(dāng)重)
  MYFirstViewController *firstVc = [[MYFirstViewController alloc]init];
  firstVc.view.backgroundColor = [UIColor redColor];
  [self addChildViewController:firstVc];

  MYSecondViewController *secondVc = [[MYSecondViewController alloc]init];
  secondVc.view.backgroundColor = [UIColor blueColor];
  [self addChildViewController:secondVc];

  MYThirdViewController *thirdVc = [[MYThirdViewController alloc]init];
  thirdVc.view.backgroundColor = [UIColor yellowColor];
  [self addChildViewController:thirdVc];

  //默認(rèn)展示第一個(gè)子控制器
  [self scrollViewDidEndDecelerating:self.containerScrollerView];
}

按鈕點(diǎn)擊事件實(shí)現(xiàn) , 代理方法實(shí)現(xiàn)

//選擇欄按鈕點(diǎn)擊事件
- (void)buttonClick:(UIButton *)button
{
  [self.containerScrollerView setContentOffset:CGPointMake(button.tag *kScreenWidth, 0) animated:YES];
}

//滑動(dòng)減速時(shí)調(diào)用
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
  //獲取contentOffset
  CGPoint currentOffset = scrollView.contentOffset;

  NSInteger page = currentOffset.x / kScreenWidth;

  //取出對(duì)應(yīng)控制器
  UIViewController *viewController = self.childViewControllers
                            
                            

                        

相關(guān)文章

  • IOS UITableView和UITableViewCell的幾種樣式詳細(xì)介紹

    IOS UITableView和UITableViewCell的幾種樣式詳細(xì)介紹

    這篇文章主要介紹了IOS UITableView和UITableViewCell的幾種樣式詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • iOS?button響應(yīng)流程圖文詳解

    iOS?button響應(yīng)流程圖文詳解

    這篇文章主要為大家介紹了iOS?button響應(yīng)流程圖文詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • iOS圖片拉伸技巧小結(jié)

    iOS圖片拉伸技巧小結(jié)

    這篇文章主要為大家詳細(xì)介紹了iOS圖片拉伸的技巧,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • 關(guān)于iOS獲取屬性你真的了解嗎?

    關(guān)于iOS獲取屬性你真的了解嗎?

    這篇文章主要給大家介紹了關(guān)于iOS取屬性的相關(guān)資料,當(dāng)說(shuō)到取屬性,相信很多的iOS開(kāi)發(fā)者們會(huì)說(shuō)出很多,但你就真的理解嗎?下面就來(lái)詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-12-12
  • iOS編程學(xué)習(xí)中關(guān)于throttle的那些事

    iOS編程學(xué)習(xí)中關(guān)于throttle的那些事

    這篇文章主要給大家介紹了關(guān)于iOS編程學(xué)習(xí)中throttle的那些事,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)各位iOS的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • IOS開(kāi)發(fā)之路--C語(yǔ)言預(yù)處理

    IOS開(kāi)發(fā)之路--C語(yǔ)言預(yù)處理

    由于預(yù)處理指令是在編譯之前就進(jìn)行了,因此很多時(shí)候它要比在程序運(yùn)行時(shí)進(jìn)行操作效率高。在C語(yǔ)言中包括三類(lèi)預(yù)處理指令,今天將一一介紹:宏定義、條件編譯、文件包含
    2014-08-08
  • iOS實(shí)現(xiàn)手勢(shì)滑動(dòng)解鎖功能簡(jiǎn)析

    iOS實(shí)現(xiàn)手勢(shì)滑動(dòng)解鎖功能簡(jiǎn)析

    本篇文章主要介紹了iOS實(shí)現(xiàn)手勢(shì)滑動(dòng)解鎖功能簡(jiǎn)析,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • IOS 關(guān)鍵字const 、static、extern詳解

    IOS 關(guān)鍵字const 、static、extern詳解

    這篇文章主要介紹了IOS 關(guān)鍵字const 、static、extern詳解的相關(guān)資料,這里對(duì)關(guān)鍵字如何使用,及在IOS開(kāi)發(fā)中的意義做了詳解,需要的朋友可以參考下
    2016-11-11
  • iOS 真機(jī)調(diào)試微信小程序

    iOS 真機(jī)調(diào)試微信小程序

    下面介紹下如何使用 Xcode、Reveal 和 Safari 來(lái)真機(jī)調(diào)試 iOS 上的小程序。感興趣的朋友跟隨腳本之家小編一起看看吧
    2018-08-08
  • iOS中的二級(jí)菜單及Cell的展開(kāi)收起示例

    iOS中的二級(jí)菜單及Cell的展開(kāi)收起示例

    本篇文章主要介紹了iOS中的二級(jí)菜單及Cell的展開(kāi)收起示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-08-08

最新評(píng)論

邵武市| 西吉县| 五华县| 抚顺市| 林州市| 永仁县| 台中市| 德惠市| 涞源县| 鄂伦春自治旗| 南雄市| 重庆市| 昌平区| 宁晋县| 武邑县| 甘泉县| 甘南县| 梨树县| 阳原县| 宜良县| 巩义市| 丰镇市| 天全县| 嘉兴市| 台南市| 盐亭县| 东阿县| 贵阳市| 虹口区| 阿拉善左旗| 古蔺县| 六盘水市| 景德镇市| 汶川县| 洪雅县| 阿勒泰市| 航空| 武义县| 德令哈市| 思南县| 靖西县|