iOS开发中的小细节(知识)

  • 在xib中加入手势识别器,会被当做一个对象,所以加载xib的时候注意返回相应的对象。

  • cocoa 命名遵循驼峰规律,所以initwithDict 不属于构造方法(initWithDict),不能在里面对self赋值。

  • return cell,如果在主线程中cell.imageView.image 不设值,等异步线程下载完成图片再设置cell.imageView.image 的值,图片只有再次刷新时候显示。这是因为一开始tableviewCell没有准备imageView的尺寸而渲染到屏幕上,当异步线程设置完图片以后,这个cellimageView.image被设置,当上拉下拉滑动滑动时重新返回cell(imageView.image有尺寸)

  • new开头的属性名不可用。【object newXXX】返回object对象,而属性的getter方法会返回相应的属性类型的新对象,因此形成冲突直接报错。

  • iOS9之后,程序启动的时候keyWindow必须要有rootViewController,否则崩掉。

  • iOS9之后,状态栏控制默认交给最上层window(window有相应等级,默认不显示)的当前控制器管理控制。

  • 把一个子控件加入到superview之后才可以查看到其真正的frame,如果程序刚启动,一般我们要等到程序获得焦点之后查看控件frame。

  • UIDatePicker继承自UIControl,而UIPickerView继承自UIView。

  • textField 有 inputView 和inputAccessoryView两个挺有用的属性。

  • 控制器的view是延时加载模式,当使用的时候才会加载。比如view.backgroundcolor = UIColor redColor,此时如果load view 方法实现,则调用此方法自定义view,否则会从xib或者storyboard中加载view或者加载空view,之后调用viewDidLoad方法,只有loadView执行完毕view才算加载到窗口上。

  • storyboard

    // 创建storyboard对象
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Two" bundle:nil];
    
    // 实例化storyboard里面控制器(initial view controller箭头所指的控制器)
     UIViewController *vc = [storyboard instantiateInitialViewController]; 
    
    // 根据id从storyboard中实例化相应的控制器
    //MJTwoViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"pink”];
    

self.window.rootViewController = vc;

```
  • tableview的静态单元格使用时,如果用到自定义controller需要去除tableview的数据源方法(否则静态单元格无效)。动态原始单元格cell使用时,只需要调用dequeueReusableCell方法即可加载storyboard中的可复用cell。

  • scrollView的subviews

    这里测试:
    _ scrollView.showsHorizontalScrollIndicator = NO;
    _ scrollView.showsVerticalScrollIndicator = NO;
    _scrollView.subviews.count == 0
    
  • cell 在reload(滑动)时会复用,而header和footer在reload时不会复用(使用UITableViewHeaderFooterView复用模式时,不知道是不是自己写错了);header和footer默认是透明的,显示tableView的背景效果。

  • 控制器view加载之后的autoResizingMask = 18(横向竖向随父控件的拉伸而拉伸)。

  • 继承关系:popoverPresentationController:presentationController,viewController的presentationController属性是懒加载形式,而popoverPresentationController需要先设置modalPresentationStyle = UIModalPresentationPopover(presentationController不能先被创建出来),两者一旦有一个被创建出来,另外一个都不会被创建(在popoverPresentationController被创建出来的情况下,两个指针指向同一个对象).

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容