代码之家  ›  专栏  ›  技术社区  ›  Rob Lourens

是否可以复制UILabel,以便将其作为子视图添加到多个UIView?

  •  4
  • Rob Lourens  · 技术社区  · 16 年前

    我知道一个视图只能是一个superview的子视图,那么是否可以复制UILabel,这样就不必复制设置代码或编写函数来创建它?

    4 回复  |  直到 16 年前
        1
  •  12
  •   Hellektor    16 年前

    不,UILabel类不实现NSCopying协议。如果要将相同的视图添加到所有视图中,那么子类化自定义视图可能是最好的方法。

        2
  •  0
  •   pablasso Jordan    14 年前

    UILabel 不符合 NSCopying . 因此不能将复制方法与UILabel一起使用。

    Iphone文档 NSObject 清楚地说-

    NSObject对象 本身不支持 协议。子类必须支持协议并实现 copyWithZone:

        3
  •  -1
  •   Snowman    14 年前

    您可以为该标签设置一个单独的XIB,然后调用 [[NSBundle mainBundle] loadNibNamed:@"LabelNib" owner:self options:nil]; 将该nib的文件所有者设置为委托类,并建立正确的连接。现在,您可以根据需要多次将标签添加到视图中,并修改每个标签(例如,使用for循环)。

        4
  •  -13
  •   deanWombourne    16 年前

    copy 方法对于从 NSObject

    UILabel *second = [first copy];
    

    但是,这可能无法像预期的那样100%工作,某些UILabel属性可能无法按您所希望的方式复制。如果没有,你可以尝试使用 NSCoding