// // 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