Day5

1 工厂方法

- (instancetype)initWithDict:(NSDictionary *)dict
{
    self = [super init];
    if (self) {
        self.name = dict[@"name"];
        self.icon = dict[@"icon"];
    }
    return self;
}

//工厂方法
+(instancetype)AppInfoInitWithDict:(NSDictionary *)dict{
    return [[self alloc]initWithDict:dict];
}

 2 XIB的使用

xib可以当作是控件来使用,在里面添加一些view,然后进行使用

ps:新添加的view的size属性要选择freeform

//声明 返回数组 xib里面平行的控件组合成数组返回
NSArray *arr = [[NSBundle mainBundle]loadNibNamed:@"AppInfoView" owner:nil options:nil];
        UIView *view = [arr firstObject];
//定位
        view.frame =CGRectMake(x, y, viewW, viewH);

本人的xib里面包含了一个imageview label 和button,使用方式可以使用tag标签

UIImageView *imageView = (UIImageView *)[view viewWithTag:1];
//也可以使用 view.subviews[0]; 但是hard code 的味道比较重 
        imageView.image = info.image;

3 XIB和UIView的配合使用

新建一个xib,然后新建一个class继续uiview配合起来使用

可参考appmanager的例子

原文地址:https://www.cnblogs.com/lihaozhou/p/4345445.html