第一篇 2019-08-03


基础知识

  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)