zoukankan      html  css  js  c++  java
  • iOS 开发小记 (七)

    最近要换地方工作了,整理下之前遇到的问题。

    1、StatusBar 
    View controller-based status bar appearance
    状态栏属性设置后,plist修改后才有效。
     
     
    2、Auto Layout
    Hugging priority 确定view有多大的优先级阻止自己变大。
    Compression Resistance priority确定有多大的优先级阻止自己变小。
    简单来说,Hugging的收缩的意思,就是当有A,B两个元素连在一起,当他们的superView变大的时候(A 和 B也要变大),哪个有更大的优先级保持原来的大小;
    Compression Resistance 是压缩阻力的意思,就是A、B两个元素连在一起,当他们的superView变小的时候(A和B也要变小),哪个有更大的优先级保持原来大小;
     
     
    3、modal半透明页面
    弹出一个半透明的viewController:
    在ib设置被弹出的展示方式:OverCurrentContext
    然后再调用 presentViewController即可。
     
     
    4、Xcode7 卡顿问题
     Source Control 里面的 Automatically 全部关掉 ; 
    设置 >> 通用 >> 最近使用项目 (改成0) / 允许在这台 Mac 和 iCloud 设备之间使用 Handoff (关掉);
     
     
     
    5、viewController生命周期
    disappear 里面做一些取消监听的操作时,要考虑到Modal一个viewController的时候,会调用disappear;
    同时在navigationController poptoroot的时候,中间的一些VC不会调用disappear。
     
    6、ReactiveCocoa
    RAC是基于KVO的,而NSMutableArray并不会在调用addObject或removeObject时发送通知;解决方案可以通过NSArray来解决;
    与此类似,Textfield的text如果是代码设置值,不会触发信号。
    view.frame 不参与KVO,bounds可以。
     
     7、Cell 自适应
    当实用UITableViewCell 的自动延伸时候,cell会自动添加一个height的约束。(可以把某个view 的height改成pro = 750,不会有warning)
    一个类似微信朋友圈添加图片的功能(UICollectionView实现,通过修改constraint高度,让view自适应)。当添加一个图片的时候,
    如果是放在UIViewController里面,修改constraint 的值,会导致view重新layout。
    如果是放在UItableviewCell 里面的,修改constrant的值,会导致cell的重新layout,但是不会导致tableview layout。需要在cell调用一次layoutIfneed。
     
     
     
     8、架构
    MVC 和 MVVM 的关于网络层的区别:
    MVC里面的Model可以做成单例,Message 可以独立出去,通过单例回调Model。model通过notify通知controller。
    MVVM里面的model,不是单例,同时与controller的状态绑定,message集成在ViewModel里面。
     
    9、AFNetworking 
    constructingBodyWithBlock
    AFNetworking upload的时候才用这个参数
    如果是普通的post,不能带有这个参数。
    (对于不同的任务,AFNetworking会生成不同的task)
     
     
    10、ReactiveCocoa 与 UI显示
    RACOberserver 用于变动的内容;
    如果是用户操作,发送协议,协议回来更新的,可以用subscribenext,在next中刷新显示;
    flattenMap 不透传completed,里面的信号完成了只是外面的信号的开始,外面的信号完成了才有completed
    text_signal 一般用next 不用completed
     
     
    11、UISearchController
    if the UISearchController is deallocated before its view is loaded, this warning will appear.
    在用搜索的时候产生warning,那么下面的函数可以解决。
    - (void)dealloc {
        [self.mySearchController.view removeFromSuperview];
    }
     
     
    12、视图切换
    视图A modal 视图M 之后,如果要在modal  dismiss跳转,记得延迟到下一个runloop(或者直接延迟0.1s)
     
    13、objective-c
     A继承B,A重写了B的方法test,那么当A 调用 test是A之后的方法。
    在super 中,self还是A,调用的还是A的test。
  • 相关阅读:
    next()nextLine()以及nextInt()的区别及用法【转载】
    JAVA集合 list set map
    JAVA求回文数
    左移右移操作_进制转换与区分
    window_mysql踩坑
    centos_mysql踩坑
    【纪中受难记】——C3D6:大小不分
    zzLinux 中直接 I/O 机制的介绍https://www.ibm.com/developerworks/cn/linux/l-cn-directio/
    zz-zookeeper 启动失败 BindException: Address already in use 或者Error contacting service. It is probably not running
    zz---对象存储(Object-based Storage)概述
  • 原文地址:https://www.cnblogs.com/loying/p/5146983.html
Copyright © 2011-2022 走看看