TUIFitButton.m 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. //
  2. // TUIFitButton.m
  3. // TUICore
  4. //
  5. // Created by wyl on 2022/5/24.
  6. // Copyright © 2023 Tencent. All rights reserved.
  7. //
  8. #import "TUIFitButton.h"
  9. @implementation TUIFitButton
  10. - (CGRect)titleRectForContentRect:(CGRect)contentRect {
  11. if (!CGRectEqualToRect(self.titleRect, CGRectZero)) {
  12. return self.titleRect;
  13. } else if (!CGSizeEqualToSize(self.titleSize, CGSizeZero)) {
  14. CGRect oldrect = [super titleRectForContentRect:contentRect];
  15. CGRect newrect = CGRectZero;
  16. newrect.origin.x = oldrect.origin.x + (oldrect.size.width - self.titleSize.width) / 2;
  17. newrect.origin.y = oldrect.origin.y + (oldrect.size.height - self.titleSize.height) / 2;
  18. newrect.size.width = self.titleSize.width;
  19. newrect.size.height = self.titleSize.height;
  20. return newrect;
  21. }
  22. return [super titleRectForContentRect:contentRect];
  23. }
  24. - (CGRect)imageRectForContentRect:(CGRect)contentRect {
  25. if (!CGRectEqualToRect(self.imageRect, CGRectZero)) {
  26. return self.imageRect;
  27. } else if (!CGSizeEqualToSize(self.imageSize, CGSizeZero)) {
  28. CGRect oldrect = [super imageRectForContentRect:contentRect];
  29. CGRect newrect = CGRectZero;
  30. newrect.origin.x = oldrect.origin.x + (oldrect.size.width - self.imageSize.width) / 2;
  31. newrect.origin.y = oldrect.origin.y + (oldrect.size.height - self.imageSize.height) / 2;
  32. newrect.size.width = self.imageSize.width;
  33. newrect.size.height = self.imageSize.height;
  34. return newrect;
  35. }
  36. return [super imageRectForContentRect:contentRect];
  37. }
  38. - (void)setNormalImage:(UIImage *)normalImage {
  39. _normalImage = normalImage;
  40. [self setImage:normalImage forState:UIControlStateNormal];
  41. }
  42. @end
  43. @implementation TUIBlockButton
  44. - (instancetype)initWithFrame:(CGRect)frame {
  45. if (self = [super initWithFrame:frame]) {
  46. [self addTarget:self action:@selector(buttonTap:) forControlEvents:UIControlEventTouchUpInside];
  47. }
  48. return self;
  49. }
  50. - (void)buttonTap:(id)button {
  51. if (self.clickCallBack) {
  52. self.clickCallBack(self);
  53. }
  54. }
  55. - (void)dealloc {
  56. }
  57. @end