天天看点

UIButton 设置图片文字垂直居中排列

转载自:UIButton 设置图片文字垂直居中排列

亲测有效!

#pragma mark 按钮图片文字垂直居中排列
-(void)setButtonContentCenter:(UIButton *)button
{
    CGSize imgViewSize,titleSize,btnSize;
    UIEdgeInsets imageViewEdge,titleEdge;
    CGFloat heightSpace = 10.0f;
    
    //设置按钮内边距
    imgViewSize = button.imageView.bounds.size;
    titleSize = button.titleLabel.bounds.size;
    btnSize = button.bounds.size;
    
    imageViewEdge = UIEdgeInsetsMake(heightSpace,0.0, btnSize.height -imgViewSize.height - heightSpace, - titleSize.width);
    [button setImageEdgeInsets:imageViewEdge];
    titleEdge = UIEdgeInsetsMake(imgViewSize.height +heightSpace, - imgViewSize.width, 0.0, 0.0);
    [button setTitleEdgeInsets:titleEdge];
}
           

调用示例:

[Btn setImage:[UIImage imageNamed:@"test.png"] forState:UIControlStateNormal];
    [Btn setTitle:@"测试" forState:UIControlStateNormal];
    [Btn setTitleColor:[UIColor lightGrayColor] forState:UIControlStateNormal];
    [self setButtonContentCenter:Btn];