Files
real-e-party-iOS/YuMi/CustomUI/MSRTL/UIButton+MSRTL.m
edwinQQQ a35a711be6 chore: Initial clean commit
- 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
2025-10-09 16:19:14 +08:00

53 lines
1.7 KiB
Objective-C

//
// MSRTL.m
// YuMi
//
// Created by duoban on 2024/4/11.
//
#import "UIButton+MSRTL.h"
@implementation UIButton (MSRTL)
UIEdgeInsets RSRTLEdgeInsetsWithInsets(UIEdgeInsets insets) {
if (insets.left != insets.right && isMSRTL()) {
CGFloat temp = insets.left;
insets.left = insets.right;
insets.right = temp;
}
return insets;
}
+ (void)load{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
Method oldMethod = class_getInstanceMethod(self, @selector(setContentEdgeInsets:));
Method newMethod = class_getInstanceMethod(self, @selector(msrtl_setContentEdgeInsets:));
method_exchangeImplementations(oldMethod, newMethod);
Method oldImageMethod = class_getInstanceMethod(self, @selector(setImageEdgeInsets:));
Method newImageMethod = class_getInstanceMethod(self, @selector(msrtl_setImageEdgeInsets:));
method_exchangeImplementations(oldImageMethod,newImageMethod);
Method oldTitleMethod = class_getInstanceMethod(self, @selector(setTitleEdgeInsets:));
Method newTitleMethod = class_getInstanceMethod(self, @selector(msrtl_setTitleEdgeInsets:));
method_exchangeImplementations(oldTitleMethod,newTitleMethod);
});
}
- (void)msrtl_setContentEdgeInsets:(UIEdgeInsets)contentEdgeInsets {
[self msrtl_setContentEdgeInsets:RSRTLEdgeInsetsWithInsets(contentEdgeInsets)];
}
- (void)msrtl_setImageEdgeInsets:(UIEdgeInsets)imageEdgeInsets {
[self msrtl_setImageEdgeInsets:RSRTLEdgeInsetsWithInsets(imageEdgeInsets)];
}
- (void)msrtl_setTitleEdgeInsets:(UIEdgeInsets)titleEdgeInsets {
[self msrtl_setTitleEdgeInsets:RSRTLEdgeInsetsWithInsets(titleEdgeInsets)];
}
@end