彩票

one day

通过stroybod加载.png
图片命名通过偏移量scrollview.png
彩票_第1张图片
加载到控制器.png
启动图片.png
EF3D7750B27A73D098F72E0D34169312.jpg

two day

  • 自定义Tabbar用UIview里面的数组 NSArray(UITabbarItem) 用一个数组 在外边传进来 里面是UITabbarItme元素
tabbar尺寸.jpg
彩票_第2张图片
把tabbar当一个对象添加到一个数组中.jpg
如上.jpg
UITabba属性.png
彩票_第3张图片
导航条属性必须用默认的 其他都是透明的.png
  • 统一设置导航条的方法(UINavigationBar appearance)以及当前类或子类第一次


    彩票_第4张图片
    统一设置导航条的方法(UINavigationBar appearance)以及当前类或子类第一次.png
  • 另一种统一设置导航条的方法


    彩票_第5张图片
    另一种统一设置导航条的方法.png

two day

彩票_第6张图片
nowlaydege.png
button自适应尺寸.png
彩票_第7张图片
pch路径.png
彩票_第8张图片
分类的里面声明方法注意事项.png
图片分类之原始图片.png

three day

蒙版

  • 如果一个控制器默认从xib加载,控件的尺寸默认跟xib一样大
  • 把结构体包装成对象【NSValue valueWithCGrect:CGZero】
  • 取消xib的自动布局
  • 修改父控件的frame,并不会影响里面的子控件- 如果需要修改子控件的frame,设置子控件的尺寸随着父控件的改变而改变。
  • 如果用translation 修改形变,值为0 时直接消失,可以减小到0.01;
  • 把一个控件从一个位置移动到另一个位置,有两种方法:
    • 1 可以修改frame ,center 中心点
    • 2可以用translation 去修改scale,translate(修改x,y值)
  • 少耦合
  • 可以用block 传值,像UIView animationDuration complete:
彩票_第9张图片
block深层理解.png
从xib加载一个空间尺寸默认和它一样大.png
彩票_第10张图片
方法传参block.png
主窗口.png
彩票_第11张图片
20171026224019.png
彩票_第12张图片
20171026213554.png

four day

  • 抛异常
  • 下拉动画
  • 计算行数 rows = (count -1)/cols + 1
bool属性取反.png
计算当前总行数.png
彩票_第13张图片
抛异常.png
translation动画.png

five day

  • 快捷键 commond + optiontal + enter == 跳转到相应的控制器
  • 快捷键 commond + optiontal + 等号 == 更新约束
  • 通过storyboard 加载控制器 storyboard 箭头
  • 在xib或者storyboard中只有uiimageview 可以用拉伸方法 strech。 按钮(button)不可以用没有效果 x= 0.5,y= 0.5,w= 0,h = 0; 0 0 表示一个像素。
彩票_第14张图片
改变button内部图片和label的位置 精髓.png
获取button当前图片.png
彩票_第15张图片
通过storyboard加载view controller.png
彩票_第16张图片
在xib或者storyboard中拉伸image view.png
彩票_第17张图片
重写,自定义控制器view.png

five day

  • 获取版本号:info.plist 右击sourcecode看源文件,取出对应的key.
  • 封装业务逻辑类。存储,rootVC选择跟控制器
  • [NavigationController alloc ]initWithRootViewController --》方法会调用
    push vc 方法--》 pushViewController:(UIViewController*)viewController animated:(Bool)animated
  • 导航控制器的自定义返回箭头。有两种方法。
  • 导航控制器自带的返回功能,靠近屏幕左侧滑动返回上级页面。如果自定义返回功能,这个功能就会消失。这时需要取消导航控制器触摸的一个代理。
彩票_第18张图片
自定义设置导航控制器返回箭头以及自带返回功能.png
彩票_第19张图片
跳转rootvc方法.png
还原导航控制器返回共能.png
导航栏返回箭头2.png
导航栏返回箭头1.png
彩票_第20张图片
collectionView属性.png
彩票_第21张图片
collectionView init初始化.png

six day

  • c语言字符串转换成oc字符串用@()包装
  • 系统滑动返回
    • 用一个delegate 记录住self.interactivePopGestureRecognizer.delegate;
    • 自己代理==自己 self.delegate == self;实现导航控制器的代理方法
    • 如果展示的控制器是根控制器,就还原pop手势代理
self.popDelegate = self.interactivePopGestureRecognizer.delegate;
    
    
    self.delegate = self;
}

#pragma mark - 导航控制器的代理方法
// 完全展示完调用
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    // 如果展示的控制器是根控制器,就还原pop手势代理
    if (viewController == [self.viewControllers firstObject]) {
        self.interactivePopGestureRecognizer.delegate = self.popDelegate;
        
    }
}
// self -> 导航控制器
- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
{


    if (self.viewControllers.count != 0) { // 非跟控制器hi
        viewController.hidesBottomBarWhenPushed = YES;
        
        // 设置导航条左边按钮的内容,把系统的返回按钮给覆盖,导航控制器的滑动返回功能就木有啦
        viewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"NavBack"] style:UIBarButtonItemStyleBordered target:self action:@selector(back)];
        
        // 就有滑动返回功能
        self.interactivePopGestureRecognizer.delegate = nil;
        
    }
    
    
    [super pushViewController:viewController animated:animated];
}
  • 自定义滑动返回
    • self.interactivePopGestureRecognizer.delegate ==( id target = [objc valueForKeyPath:@"_target"]);
 // 取出系统手势的target对象,
    
    //  取出某个对象里面属性 1.KVC 前提条件:必须知道属性名 2.运行时
    
    // 遍历某个类里面所有属性 Ivar:表示成员属性
    // copyIvarList只能获取哪个类下面的属性,并不会越界(不会把它的父类的属性给遍历出来)
    // Class 获取哪个类的成员属性
    // count:告诉你当前类里面成员属性的总数
    unsigned int count = 0;
    // 返回成员属性的数组
    Ivar *ivars = class_copyIvarList([UIGestureRecognizer class], &count);
    
    for (int i = 0; i < count; i++) {
        // 取出成员变量
        Ivar ivar = ivars[i];
        
        // 获取属性名
        NSString *ivarName = @(ivar_getName(ivar));
        
        NSLog(@"%@",ivarName);
        
        
    }
    
    // _targets:属性名 value
    NSArray *targets = [self.interactivePopGestureRecognizer valueForKeyPath:@"_targets"];
    
    id objc = [targets firstObject];
    id target = [objc valueForKeyPath:@"_target"];

// 其实  target == self.interactivePopGestureRecgnizer.delegate

 UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self.interactivePopGestureRecognizer.delegate action:@selector(handleNavigationTransition:)];
    
    pan.delegate = self;
    
    [self.view addGestureRecognizer:pan];

#pragma mark - 手势代理方法
// 是否开始触发手势
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    // 判断下当前控制器是否是跟控制器
    
    return (self.topViewController != [self.viewControllers firstObject]);
}
  • 模型的继承
  • block循环利用


    彩票_第22张图片
    block循环利用问题.png
彩票_第23张图片
根据模型判断类别.png
模型block.png
模型控制器跳转类名.png

seven day

彩票_第24张图片
导图.png
彩票_第25张图片
modal一个导航控制器.png
QQ截图20171117212649.png
彩票_第26张图片
QQ截图20171117215527.png
彩票_第27张图片
webview加载javasprit.png
获取路径的另一种方法.png
彩票_第28张图片
路径.png
彩票_第29张图片
解析数据.png

你可能感兴趣的:(彩票)