Mac安装TensorFlow步骤

简介

VCTransitionsLibrary
提供了众适用于入栈,出栈,模态等现象下控制器切换时的转场动画.它本身提供了一个概念好之转场动画库,你得拖到温馨工程被一直采用;也供了诸多装有不同转场动画效果”互动控制器”,你得一直行使这多少个控制器来跟打定义动画效果十分使用;而休是友好说了算去决定交互.

花色主页: VCTransitionsLibrary

新式示例: 点击下载

留神: 自定义视图控制器的转场动画也iOS7 +
透过 UIViewControllerTransitioningDelegate磋商, UINavigationControllerDelegate磋商及 UITabBarControllerDelegate
协议提供的系级别之补助.这些库房的意思在于定义了常用之卡通片效果,并封装了常用之交互操作,简化了iOS交互式转场动画的编码量!

网上发出这一个安TensorFlow的安情势,但基本上是很久从前的了,现在底装模式没有此前那么烦,下边坐Mac系统啊例,简单说下TensorFlow安装步骤。

顿时入门

一、安装Python##\

首先步没什么好说的,直接到Python官网下载安装包,强烈指出安装新型版本,我装的是Python
2的2.7.13本子,点进之后,采纳下图所示版本:

1.png

运转环境

  • iOS 7+
  • ARC

二、安装pip##\

pip是Python包管理工具,如果Python2的版>=2.7.9(Python3之版本>=3.4),那么她自从带pip,所以率先步成功安装的话,pip其实已经设置了。为了保起见,大家得更新pip,打开终端,执行以下命令:

pip install -U pip

若你的Python版本过小,请走pip官网

安装

三、修改pip源##\

鉴于自家大天朝的不可抗因素,一些外国的来源于不可以访问,可以为个VPN,或者直接修改pip源。打开文本编辑器,同时据shift+command+T,转换成纯文本,然后拿脚就段复制粘贴进去

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com

接下来文件称保存也pip.conf,注意“假诺没供扩大名,则使用.txt”本条选项不要引起,保存在HOME目录下(用户称对应之目),如图:

2.png

使用 CocoaPods 安装

pod "VCTransitionsLibrary"

四、安装TensorFlow##\

归根结底到及时等同步了,打开终端,执行以下命令,稍等片刻即可:

pip install -U tensorflow

此外,Mac上写Python代码,推荐以PyCharm,安装之时光择License
server(服务器激活),地址输入http://idea.imsxm.com/,即可免费激活。

手动安装

把文件 AnimationControllers 和 InteractionControllers 文件夹下所有代码复制到工程中就可.

使用

在从定义转场动画时,有一定量像样首要之类似:

  • 动画片控制器 –
     这一个看似是为此来实现由定义动画的.但你讲明想如若动自定义动画时,你该提供一个卡通控制器.这一个类会实现用之卡通片,完成时会打招呼框架.
  • 相控制器 –
    那一个近乎是因而来管理相互的-这多少个通常由有手势空控制的相,允许用户通过滑行,轻扫或施行外操作来落实两单视图控制器的导航.必须提议的是,交互控制器允许导航撤除,例如,一个用户可以当在导航及有一页面时时,突然更改主意,然后裁撤了操作.

在意: 动画和互动是一心独立的,这表示你得在其他任何自定义控制器上独行使交互控制器-很充分!

采用动画片控制器

AnimationControllers 文件夹着提供了众多可做进你的工程被之卡通片控制器:

打定义模态控制器展现/隐藏的卡通

UIViewControllerTransitioningDelegate
商谈为用来以模态控制器展现/隐藏时供一个动画片控制器.当一个视图控制器被模态显示或隐藏时,它的transitioningDelegate属性用来提供UIViewControllerTransitioningDelegate协议的辅助.担当代理角色的类似,通过 animationControllerForPresentedController:
presentingController: sourceController: 方法重返模态呈现时的动画,
通过 animationControllerForDismissedController: 返回模态消失时的动画即可.

自从定义顶部导航的转场动画

UINavigationController 有一个

id<UINavigationControllerDelegate> delegate
属性.只待被它的代办通过 navigationController:
animationControllerForOperation: fromViewController: toViewController:
重返某个动画效果就算可.

为同服装出栈/入栈都合适的卡通效果(或者说,出栈/入栈时会下相反方向的卡通片),你可参考下边代码:

- (id<UIViewControllerAnimatedTransitioning>)navigationController:
                                (UINavigationController *)navigationController
   animationControllerForOperation:(UINavigationControllerOperation)operation
                fromViewController:(UIViewController *)fromVC
                  toViewController:(UIViewController *)toVC {

    // 出栈时,要反转动画方向.
    _animationController.reverse = operation == UINavigationControllerOperationPop;

    return _animationController;
}

自定义底部标签栏导航的转场动画

UITabBarController 有一个 id<UITabBarControllerDelegate>
delegate属性,只需要吃她的代理通过tabBarController:
animationControllerForTransitionFromViewController:
toViewController:重回某个动画效果就是可.

为让动画一个老少咸宜的可行性,你可以较单薄独视图控制器的目录:

- (id <UIViewControllerAnimatedTransitioning>)tabBarController:(UITabBarController *)tabBarController
            animationControllerForTransitionFromViewController:(UIViewController *)fromVC
                                              toViewController:(UIViewController *)toVC {

    NSUInteger fromVCIndex = [tabBarController.viewControllers indexOfObject:fromVC];
    NSUInteger toVCIndex = [tabBarController.viewControllers indexOfObject:toVC];

    _animationController.reverse = fromVCIndex < toVCIndex;
    return _animationController;
}

应用交互控制器

互动控制器和动画控制器配合使用,能够兑现交互式的卡通片转场效果,比如可以给用户通过手势来控制页面间的导航.交互控制器允许用户以一个转场动画中提高,后退,甚至退出.

互控制器负责被视图添加手势,并肩负在用户以某手势时开展对应地导航操作.

模态控制器消失时的互动

UIViewControllerTransitioningDelegate
研商,也就此来供针对性交互式转场的襄助.上面是一个结清扫手势和翻页动画的例证:

//实例变量,通常在你的初始化方法初始化它们
CEFlipAnimationController *_animationController;
CESwipeInteractionController *_interactionController;

- (id<UIViewControllerAnimatedTransitioning>)
      animationControllerForPresentedController:(UIViewController *)presented
                           presentingController:(UIViewController *)presenting
                               sourceController:(UIViewController *)source {

    // 允许交互控制器绑定它的手势识别器.
    [_interactionController wireToViewController:presented 
                                    forOperation:CEInteractionOperationDismiss];
       _animationController.reverse = NO;
    return _animationController;
}

- (id<UIViewControllerAnimatedTransitioning>)
     animationControllerForDismissedController:(UIViewController *)dismissed {
    _animationController.reverse = YES;
    return _animationController;
}

- (id<UIViewControllerInteractiveTransitioning>)
           interactionControllerForDismissal:
                (id<UIViewControllerAnimatedTransitioning>)animator {

    // 如果有交互控制器被触发了,就直接使用它.返回nil,是为了支持用户通过点击某个按钮直接返回;此时不会触发交互控制器.
    return _interactionController.interactionInProgress
                ? _interactionController : nil;
}

生栈时的相

UINavigationControllerDelegate
也时有发生方法吗交互式转场提供扶助.一个特出的类似于上点代码的形式:

// 实例变量,通常在你的初始化方法中初始化它们.
CEFlipAnimationController *_animationController;
CESwipeInteractionController *_interactionController;

- (id<UIViewControllerAnimatedTransitioning>)
                 navigationController:(UINavigationController *)navigationController
      animationControllerForOperation:(UINavigationControllerOperation)operation
                   fromViewController:(UIViewController *)fromVC
                     toViewController:(UIViewController *)toVC {

    // 把交互控制器绑定到你的视图控制器上.
    [_interactionController wireToViewController:toVC
                                    forOperation:CEInteractionOperationPop];

    _animationController.reverse = operation == UINavigationControllerOperationPop;

    return _animationController;
}

- (id <UIViewControllerInteractiveTransitioning>)
                         navigationController:(UINavigationController *)navigationController 
  interactionControllerForAnimationController:(id <UIViewControllerAnimatedTransitioning>)animationController {

    //如果有交互控制器被触发了,就直接使用它.返回nil,是为了支持用户通过点击某个按钮直接返回;此时不会触发交互控制器. 
    return _interactionController.interactionInProgress
                ? _interactionController : nil;
}

用以标签栏控制器切换时的互相

UITabBarControllerDelegate
研究呢也交互式转场提供了支撑.可是由代理方在首不行最先化时无叫实践,所有需要任何方法来绑定交互控制器,如KVO:

@implementation TabBarViewController {
    CEFoldAnimationController *_animationController;
    CESwipeInteractionController *_swipeInteractionController;
}

- (id)initWithCoder:(NSCoder *)aDecoder {
    if (self = [super initWithCoder:aDecoder]) {
        self.delegate = self;

        // 创建交互/动画控制器.
        _swipeInteractionController = [CESwipeInteractionController new];
        _animationController = [CEFoldAnimationController new];
        _animationController.folds = 3;

        // 使用观察者模式监测被选中的选择器的变化情况.
        [self addObserver:self
               forKeyPath:@"selectedViewController"
                  options:NSKeyValueObservingOptionNew
                  context:nil];
    }
    return self;
}

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
                        change:(NSDictionary *)change
                       context:(void *)context
{
    if ([keyPath isEqualToString:@"selectedViewController"] )
    {
        // 把交互控制器绑定到视图控制器上.
        [_swipeInteractionController wireToViewController:self.selectedViewController
                                             forOperation:CEInteractionOperationTab];
    }
}



- (id <UIViewControllerAnimatedTransitioning>)tabBarController:(UITabBarController *)tabBarController
            animationControllerForTransitionFromViewController:(UIViewController *)fromVC
                                              toViewController:(UIViewController *)toVC {

    NSUInteger fromVCIndex = [tabBarController.viewControllers indexOfObject:fromVC];
    NSUInteger toVCIndex = [tabBarController.viewControllers indexOfObject:toVC];

    _animationController.reverse = fromVCIndex < toVCIndex;
    return _animationController;
}

-(id<UIViewControllerInteractiveTransitioning>)tabBarController:(UITabBarController *)tabBarController interactionControllerForAnimationController:(id<UIViewControllerAnimatedTransitioning>)animationController
{
    return _swipeInteractionController.interactionInProgress ? _swipeInteractionController : nil;
}

@end

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注