cdts/xdts-ios 3/TUICalling/Source/UI/Common/UIButton+TUIImageTitleSpacing.m
2023-07-27 09:20:00 +08:00

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