UIButton的图文垂直排列+两则间隔

   

-(void)layoutSubviews {
    [super layoutSubviews];
    /*
        super view frame
     47:317---------------
     |		 |		      |
     |	23:46|imgView     |
     |	 --------------   |
     |	|    |         |  |
     |	|	 46        |  |
     |--|--23 .	Center |  |
     */
//    // Center image
    CGRect rect = self.imageView.frame;
    rect.size.height=20;
    rect.size.width=20;
    //固定住图层高和宽,避免偏移,具体看你项目图片尺寸定
    self.imageView.frame = rect;
    CGPoint center = self.imageView.center;
    CGRect newFrame = [self titleLabel].frame;
    center.x = self.frame.size.width/2;
    center.y = self.frame.size.height/2 - newFrame.size.height/2;
    self.imageView.center = center;
    
    //Center text
    newFrame.origin.x = self.imageView.frame.size.width/2 + _spacing/2;
    //↑文本框的左侧距离为 图标的宽度/2 + 间隔距离/2,因为,默认布局图片在左,文本在右
    newFrame.origin.y = self.imageView.frame.size.height + self.imageView.frame.origin.y + _spacing;
    //↑文本框的上距离为 图标的y坐标+图片本身的高度+间隔距离
    newFrame.size.width = self.frame.size.width;
    self.titleLabel.frame = newFrame;
}

在继承自UIButton类里面重写layoutSubviews方法


你可能感兴趣的:(UIButton的图文垂直排列+两则间隔)