解决方案 »

  1.   

    第一种从xib里加载,如果View没有对外属性的话,都不用写个UITabelViewCell的子类(如果是UITableViewCell的子类,在xib的属性栏里修改下就好了);第二种从代码里加载,更加灵活,但是布局得自己手写,同时如果想对父视图的约束进行更新的话,也会方便一些。
    总的来说,除了第二种对子类的拓展性更好外,其他都差不多。
      

  2.   

    这两种方式都是由系统来帮助管理cell的创建,省去了在cellforrow中cell是否为空的判断。registerNib, registerClass 后的代码,告诉系统当cell不能从复用队列中创建时,如何来进行cell的创建。它们的区别楼上基本都说了,但还有一点要注意的是, registerClass是ios 6 之后出现的,它配对于
    -(id)dequeueReusableCellWithIdentifier:(NSString *)identifier forIndexPath:(NSIndexPath *)indexPath
    这个方法