天天看點

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];