47 lines
1.8 KiB
Objective-C
47 lines
1.8 KiB
Objective-C
//
|
|
// UIButton+TUIImageTitleSpacing.m
|
|
// TUICalling
|
|
//
|
|
// Created by noah on 2021/8/24.
|
|
//
|
|
|
|
#import "UIButton+TUIImageTitleSpacing.h"
|
|
|
|
@implementation UIButton (TUIImageTitleSpacing)
|
|
|
|
- (void)layoutButtonWithEdgeInsetsStyle:(TUIButtonEdgeInsetsStyle)style
|
|
imageTitleSpace:(CGFloat)space {
|
|
CGFloat imageWidth = self.imageView.frame.size.width;
|
|
CGFloat imageHeight = self.imageView.frame.size.height;
|
|
CGFloat labelWidth = self.titleLabel.intrinsicContentSize.width;
|
|
CGFloat labelHeight = self.titleLabel.intrinsicContentSize.height;
|
|
UIEdgeInsets imageEdgeInsets = UIEdgeInsetsZero;
|
|
UIEdgeInsets labelEdgeInsets = UIEdgeInsetsZero;
|
|
|
|
switch (style) {
|
|
case TUIButtonEdgeInsetsStyleTop:
|
|
imageEdgeInsets = UIEdgeInsetsMake(-labelHeight - space / 2.0, 0, 0, -labelWidth);
|
|
labelEdgeInsets = UIEdgeInsetsMake(0, -imageWidth, -imageHeight - space / 2.0, 0);
|
|
break;
|
|
case TUIButtonEdgeInsetsStyleLeft:
|
|
imageEdgeInsets = UIEdgeInsetsMake(0, -space / 2.0, 0, space / 2.0);
|
|
labelEdgeInsets = UIEdgeInsetsMake(0, space / 2.0, 0, -space / 2.0);
|
|
break;
|
|
case TUIButtonEdgeInsetsStyleBottom:
|
|
imageEdgeInsets = UIEdgeInsetsMake(0, 0, -labelHeight - space/2.0, -labelWidth);
|
|
labelEdgeInsets = UIEdgeInsetsMake(-imageHeight - space / 2.0, -imageWidth, 0, 0);
|
|
break;
|
|
case TUIButtonEdgeInsetsStyleRight:
|
|
imageEdgeInsets = UIEdgeInsetsMake(0, labelWidth+space / 2.0, 0, -labelWidth - space / 2.0);
|
|
labelEdgeInsets = UIEdgeInsetsMake(0, -imageWidth - space / 2.0, 0, imageWidth + space / 2.0);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
self.titleEdgeInsets = labelEdgeInsets;
|
|
self.imageEdgeInsets = imageEdgeInsets;
|
|
}
|
|
|
|
@end
|