美文网首页
第一篇 2019-08-03

第一篇 2019-08-03

作者: 金樽明月 | 来源:发表于2019-08-04 00:22 被阅读0次

    基础知识

    1. Apple 的简介
    2. Xcode 面板介绍
      和 Android Studio 还是有很大差距的,而且快捷键很不适应。学习阶段先用 Xcode,实际开发可能会使用 AppCode 。
    3. ViewControl 和 View 的关系
      ViewControl 相当于 Android 中的 Activity ,都是某个界面的逻辑实现类。
    4. iOS 开发中的连线
      可以分为给UI组件命名和给事件添加方法。对于简单的界面来说,还是很方便的。但复杂的界面估计还是要靠代码实现。
    5. 代码动态创建 UI 组件,并设置属性、事件
    6. 两种动画方式:直接动画和 Block 动画

    UIView 相关属性

    1. tag :每个继承UIView 的唯一标识
    2. removeFromSuperView、addsubView、subViews
    3. viewWithTag、frame、transform
      这些属性、方法在 Android 中都会有响应的对应,理解起来应该很容易。

    1. NSBundle 中获取资源路径
    2. UIImageView animationImages 播放动画
    3. UIImage 的两种创建方式
      [UIImage imageNamed:@"hiehei"];
      从 asset 中加载,速度快,但是常驻内存
      UIImage *test = [UIImage imageWithContentsOfFile:@"hiehei"];
      从 bundle 中加载,速度慢,但是没有引用的时候,会自动释放

    1. 相对布局的实现
      CGFloat CGRectGetMaxY(CGReact *react)
    2. 字典转模型
      定一个一个类,提供实例方法和类方法
    3. xib 的使用: 其实就是 安卓中的自定义 View
    4. 代码块的设置
    5. [array makeObjectsPerformSelector:@selector(removeFromSuperview)];
      让数组中的每个元素执行一个方法 forEach
    6. [array enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
      }];
      遍历数组,速度快,stop === yes 立即停止,
    7. rootView.userInteractionEnabled = YES;
      是否允许用户交互,如果可以影响子控件
    8. [rootView performSelector:@selector(testXib)]; 延迟执行一个方法,类似 View.postRunable
    9. 状态栏的设置
      10 .self presentViewController:<#(nonnull UIViewController *)#> animated:<#(BOOL)#> completion:<#^(void)completion#>
      跳转界面
    10. UIAlertController alert 对话框
    11. [self.targetView bringSubviewToFront:subView];
      和 安卓一样的方法,哈哈
    12. KVC 很有意思,安卓没有这东西,可以自动类型转换
      AppModel *appModel = [[AppModel alloc] init];
      [appModel setValue:@"xiao王" forKey:@"name"];
      [appModel setValue:@"xiao王" forKeyPath:@"book.name"];
      NSString *name = [appModel valueForKey:@"book.name"];
      [appModel setValuesForKeysWithDictionary:dict];
      NSArray *array = @[appModel, appModel];
      NSArray *nameArray = [array valueForKey:@"name"];

    ScrollView

    1. 常用属性
      contentSize: 滚动范围,一定要比 ScrollView 本身大
      contentInSet: 内边距,变相的扩大了 contentSize
      contentOffset: 偏移量
    2. 不能滚动的原因
      1. contentSize 没有 ScrollView size 大
      2. userInteractionEable
      3. scrollEable
    3. 设置 scrollView 的内容的缩放、缩放倍数、监听回调
      (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
    4. PageControl 的使用
    5. NStimer 的使用
      fire 会立即执行;inviladate 失效,失效后需要重新创建
    6. NSRunloop 提高 timer 的优先级,否则有其他 scrollView 滚动的时候,timer 优先级比较低,会停止工作
    7. 代理为什么要使用 weak 修饰符:因为两个对象相互引用,必须有一个是 weak ,否则没法释放内存

    UITableView (也就是安卓中的 ListView,但是系统提供的功能更多)

    1. 显示单组数据、多组数据(Plain, Group 两种模式)、为每个组设置 Header 和 Footer(title, view 两种样式), 为 TableView 设置 HeaderView、FooterView
    2. Cell 的重用、编辑、删除、插入
    3. 列表索引的显示 ABCDE....
    4. 数据刷新:刷新所有、刷新某行

    if (self = [super init]) {

    }
    return self;
    

    直接写成 [super init]; .... return self;

    相关文章

      网友评论

          本文标题:第一篇 2019-08-03

          本文链接:https://www.haomeiwen.com/subject/tqxedctx.html