美文网首页
不用xib建view的小注意

不用xib建view的小注意

作者: 杨大虾 | 来源:发表于2017-06-12 14:24 被阅读15次
    - (instancetype)initWithFrame:(CGRect)frame
    {
        if (self = [super initWithFrame:frame]) {
            
        }
        return self;
    }
    
    
    - (void)layoutSubviews
    {
        [super layoutSubviews];  
    }
    
    

    凡是子控件跟frame相关的要在- (void)layoutSubviews;里写


    @implementation Btn
    
    // 自定义按钮的frame方法
    - (instancetype)initWithFrame:(CGRect)frame isShow:(BOOL)isShow
    {
        if (self = [super initWithFrame:frame]) {
            self.titleLabel.textAlignment = NSTextAlignmentRight;
            // 字体不分状态
            self.titleLabel.font = [UIFont systemFontOfSize:14];
            self.titleLabel.lineBreakMode = NSLineBreakByTruncatingTail;
            [self setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
            self.backgroundColor = [UIColor greenColor];
            self.isTest = isShow;
        }
        return self ;
    }
    
    - (void)update:(BOOL)isTest{
        
        self.isTest = isTest;
        //调用这句,改变布局
        [self setNeedsLayout];
    }
    
    - (void)layoutSubviews
    {
        [super layoutSubviews];
        
        CGFloat buttonW = self.frame.size.width;
        CGFloat buttonH = self.frame.size.height;
        CGFloat imageW = 0;
        if (self.isTest){
            imageW = 20;
        }
        self.titleLabel.frame = CGRectMake(0, 0,buttonW - imageW + 5, buttonH);
        self.imageView.frame = CGRectMake(self.titleLabel.frame.size.width - 5, (buttonH - imageW) / 2, imageW, imageW);
    }
    
    

    相关文章

      网友评论

          本文标题:不用xib建view的小注意

          本文链接:https://www.haomeiwen.com/subject/dpmsfxtx.html