
- Removed YuMi/Library/ (138 MB, not tracked) - Removed YuMi/Resources/ (23 MB, not tracked) - Removed old version assets (566 files, not tracked) - Excluded Pods/, xcuserdata/ and other build artifacts - Clean repository optimized for company server deployment
81 lines
3.2 KiB
Objective-C
81 lines
3.2 KiB
Objective-C
//
|
|
// YMButton.m
|
|
// YUMI
|
|
//
|
|
// Created by XY on 2023/2/21.
|
|
//
|
|
|
|
#import "XPButton.h"
|
|
|
|
@interface XPButton()
|
|
|
|
/**
|
|
图片距离上下的距离
|
|
*/
|
|
@property (nonatomic, assign) CGFloat space;
|
|
|
|
@end
|
|
|
|
@implementation XPButton
|
|
|
|
+ (id)buttonWithType:(UIButtonType)buttonType withSpace:(CGFloat)space {
|
|
XPButton *button = [super buttonWithType:buttonType];
|
|
button.space = space;
|
|
return button;
|
|
}
|
|
|
|
- (void)layoutSubviews {
|
|
[super layoutSubviews];
|
|
//文案的宽度
|
|
CGFloat labelWidth = self.titleLabel.frame.size.width;
|
|
//文案的高度
|
|
CGFloat labelHeight = self.titleLabel.frame.size.height;
|
|
//button的image
|
|
UIImage *image = self.imageView.image;
|
|
|
|
switch (self.buttonStyle) {
|
|
case XPButtonImageLeft: {
|
|
//设置后的image显示的高度
|
|
CGFloat imageHeight = self.frame.size.height - (2 * self.space);
|
|
//文案和图片居中显示时距离两边的距离
|
|
CGFloat edgeSpace = (self.frame.size.width - imageHeight - labelWidth - self.padding) / 2;
|
|
self.imageEdgeInsets = UIEdgeInsetsMake(self.space, edgeSpace, self.space, edgeSpace + labelWidth + self.padding);
|
|
self.titleEdgeInsets = UIEdgeInsetsMake(0, -image.size.width + imageHeight + self.padding, 0, 0);
|
|
}
|
|
break;
|
|
case XPButtonImageRight: {
|
|
//设置后的image显示的高度
|
|
CGFloat imageHeight = self.frame.size.height - (2 * self.space);
|
|
//文案和图片居中显示时距离两边的距离
|
|
CGFloat edgeSpace = (self.frame.size.width - imageHeight - labelWidth - self.padding) / 2;
|
|
self.imageEdgeInsets = UIEdgeInsetsMake(self.space, edgeSpace + labelWidth + self.padding, self.space, edgeSpace);
|
|
self.titleEdgeInsets = UIEdgeInsetsMake(0, -image.size.width - self.padding - imageHeight, 0, 0);
|
|
}
|
|
break;
|
|
case XPButtonImageTop: {
|
|
//设置后的image显示的高度
|
|
CGFloat imageHeight = self.frame.size.height - (2 * self.space) - labelHeight - self.padding;
|
|
if (imageHeight > image.size.height) {
|
|
imageHeight = image.size.height;
|
|
}
|
|
self.imageEdgeInsets = UIEdgeInsetsMake(self.space, (self.frame.size.width - imageHeight) / 2, self.space + labelHeight + self.padding, (self.frame.size.width - imageHeight) / 2);
|
|
self.titleEdgeInsets = UIEdgeInsetsMake(self.space + imageHeight + self.padding, -image.size.width, self.space, 0);
|
|
}
|
|
break;
|
|
case XPButtonImageBottom: {
|
|
//设置后的image显示的高度
|
|
CGFloat imageHeight = self.frame.size.height - (2 * self.space) - labelHeight - self.padding;
|
|
if (imageHeight > image.size.height) {
|
|
imageHeight = image.size.height;
|
|
}
|
|
self.imageEdgeInsets = UIEdgeInsetsMake(self.space + labelHeight + self.padding, (self.frame.size.width - imageHeight) / 2, self.space, (self.frame.size.width - imageHeight) / 2);
|
|
self.titleEdgeInsets = UIEdgeInsetsMake(self.space, -image.size.width, self.padding + imageHeight + self.space, 0);
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
@end
|