View封装

一个空间看不见可能

-看度和高度其实为0

-位置不对(比如是负数或者超大的数字,超出屏幕)

-hidden==YES

-alpha<=0.01

-没有设置背景色,没有设置内容


-文字颜色和背景色一样



一般一个view比较多,一般会自定义一个人view


封装过程
加进去

layoutSubViews 子空间跟着父控件变化

模型属性 重写set方法 传入模型属性


#import "XMGShopView.h"
#import"XMGShop.h"
@interface XMGShopView()

/**  商品名称  */
@property(nonatomic,strong)UILabel * namelabel ;
/**  商品图片
 */
@property(nonatomic,strong)UIImageView * iconView ;

@end


@implementation XMGShopView

- (instancetype)init
{
  
    if (self== [super init]) {
        
       // 添加图片
        UIImageView *iconView = [[UIImageView alloc] init];
   
     
        iconView.backgroundColor = [UIColor blueColor];
        [self addSubview:iconView];
        self.iconView=iconView;
        // 添加文字
        UILabel *namelabel = [[UILabel alloc] init];
      
              namelabel.font = [UIFont systemFontOfSize:11];
        namelabel.textAlignment = NSTextAlignmentCenter;
        namelabel.backgroundColor=[UIColor orangeColor];
        [self addSubview:namelabel];
        self.namelabel=namelabel;
        
    }
    return self;
}
-(void)layoutSubviews
{
    [super layoutSubviews];
    CGFloat shopH=self.frame.size.height;
    CGFloat shopW=self.frame.size.width;
    self.iconView.frame=CGRectMake(0, 0, shopH, shopH);
    self.namelabel.frame=CGRectMake(0, shopW, shopW, shopH-shopW);
    
    
}
-(void)setShop:(XMGShop *)shop
{
    _shop=shop;
    self.namelabel.text=shop.name;
    self.iconView.image=[UIImage  imageNamed:shop.icon];
}

@end




你可能感兴趣的:(View封装)