|
@@ -1,121 +0,0 @@
|
|
|
-//
|
|
|
|
|
-// 如遇到问题或有更好方案,请通过以下方式进行联系
|
|
|
|
|
-// QQ:1357127436
|
|
|
|
|
-// Email:kingsic@126.com
|
|
|
|
|
-// GitHub:https://github.com/kingsic/SGEasyButton
|
|
|
|
|
-//
|
|
|
|
|
-// UIButton+SGImagePosition.m
|
|
|
|
|
-// UIButton+SGImagePosition
|
|
|
|
|
-//
|
|
|
|
|
-// Created by kingsic on 2017/8/7.
|
|
|
|
|
-// Copyright © 2017年 kingsic. All rights reserved.
|
|
|
|
|
-//
|
|
|
|
|
-
|
|
|
|
|
-#import "UIButton+SGImagePosition.h"
|
|
|
|
|
-
|
|
|
|
|
-@implementation UIButton (SGImagePosition)
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * 设置图片与文字样式
|
|
|
|
|
- *
|
|
|
|
|
- * @param imagePositionStyle 图片的文字
|
|
|
|
|
- * @param spacing 图片与文字之间的间距
|
|
|
|
|
- */
|
|
|
|
|
-- (void)SG_imagePositionStyle:(SGImagePositionStyle)imagePositionStyle spacing:(CGFloat)spacing {
|
|
|
|
|
- if (imagePositionStyle == SGImagePositionStyleDefault) {
|
|
|
|
|
- if (self.contentHorizontalAlignment == UIControlContentHorizontalAlignmentLeft) {
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, spacing, 0, 0);
|
|
|
|
|
- } else if (self.contentHorizontalAlignment == UIControlContentHorizontalAlignmentRight) {
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, spacing);
|
|
|
|
|
- } else {
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, - 0.5 * spacing, 0, 0.5 * spacing);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, 0.5 * spacing, 0, - 0.5 * spacing);
|
|
|
|
|
- }
|
|
|
|
|
- } else if (imagePositionStyle == SGImagePositionStyleRight) {
|
|
|
|
|
- CGFloat imageW = self.imageView.image.size.width;
|
|
|
|
|
- CGFloat titleW = self.titleLabel.frame.size.width;
|
|
|
|
|
- if (self.contentHorizontalAlignment == UIControlContentHorizontalAlignmentLeft) {
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, titleW + spacing, 0, 0);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, - imageW, 0, 0);
|
|
|
|
|
- } else if (self.contentHorizontalAlignment == UIControlContentHorizontalAlignmentRight) {
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, - titleW);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, imageW + spacing);
|
|
|
|
|
- } else {
|
|
|
|
|
- CGFloat imageOffset = titleW + 0.5 * spacing;
|
|
|
|
|
- CGFloat titleOffset = imageW + 0.5 * spacing;
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, imageOffset, 0, - imageOffset);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, - titleOffset, 0, titleOffset);
|
|
|
|
|
- }
|
|
|
|
|
- } else if (imagePositionStyle == SGImagePositionStyleTop) {
|
|
|
|
|
- CGFloat imageW = self.imageView.frame.size.width;
|
|
|
|
|
- CGFloat imageH = self.imageView.frame.size.height;
|
|
|
|
|
- CGFloat titleIntrinsicContentSizeW = self.titleLabel.intrinsicContentSize.width;
|
|
|
|
|
- CGFloat titleIntrinsicContentSizeH = self.titleLabel.intrinsicContentSize.height;
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(- titleIntrinsicContentSizeH - spacing, 0, 0, - titleIntrinsicContentSizeW);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, - imageW, - imageH - spacing, 0);
|
|
|
|
|
- } else if (imagePositionStyle == SGImagePositionStyleBottom) {
|
|
|
|
|
- CGFloat imageW = self.imageView.frame.size.width;
|
|
|
|
|
- CGFloat imageH = self.imageView.frame.size.height;
|
|
|
|
|
- CGFloat titleIntrinsicContentSizeW = self.titleLabel.intrinsicContentSize.width;
|
|
|
|
|
- CGFloat titleIntrinsicContentSizeH = self.titleLabel.intrinsicContentSize.height;
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(titleIntrinsicContentSizeH + spacing, 0, 0, - titleIntrinsicContentSizeW);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, - imageW, imageH + spacing, 0);
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * 设置图片与文字样式(推荐使用)
|
|
|
|
|
- *
|
|
|
|
|
- * @param imagePositionStyle 图片位置样式
|
|
|
|
|
- * @param spacing 图片与文字之间的间距
|
|
|
|
|
- * @param imagePositionBlock 在此 Block 中设置按钮的图片、文字以及 contentHorizontalAlignment 属性
|
|
|
|
|
- */
|
|
|
|
|
-- (void)SG_imagePositionStyle:(SGImagePositionStyle)imagePositionStyle spacing:(CGFloat)spacing imagePositionBlock:(void (^)(UIButton *button))imagePositionBlock {
|
|
|
|
|
-
|
|
|
|
|
- imagePositionBlock(self);
|
|
|
|
|
-
|
|
|
|
|
- if (imagePositionStyle == SGImagePositionStyleDefault) {
|
|
|
|
|
- if (self.contentHorizontalAlignment == UIControlContentHorizontalAlignmentLeft) {
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, spacing, 0, 0);
|
|
|
|
|
- } else if (self.contentHorizontalAlignment == UIControlContentHorizontalAlignmentRight) {
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, spacing);
|
|
|
|
|
- } else {
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, - 0.5 * spacing, 0, 0.5 * spacing);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, 0.5 * spacing, 0, - 0.5 * spacing);
|
|
|
|
|
- }
|
|
|
|
|
- } else if (imagePositionStyle == SGImagePositionStyleRight) {
|
|
|
|
|
- CGFloat imageW = self.imageView.image.size.width;
|
|
|
|
|
- CGFloat titleW = self.titleLabel.frame.size.width;
|
|
|
|
|
- if (self.contentHorizontalAlignment == UIControlContentHorizontalAlignmentLeft) {
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, titleW + spacing, 0, 0);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, - imageW, 0, 0);
|
|
|
|
|
- } else if (self.contentHorizontalAlignment == UIControlContentHorizontalAlignmentRight) {
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, - titleW);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 0, imageW + spacing);
|
|
|
|
|
- } else {
|
|
|
|
|
- CGFloat imageOffset = titleW + 0.5 * spacing;
|
|
|
|
|
- CGFloat titleOffset = imageW + 0.5 * spacing;
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(0, imageOffset, 0, - imageOffset);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, - titleOffset, 0, titleOffset);
|
|
|
|
|
- }
|
|
|
|
|
- } else if (imagePositionStyle == SGImagePositionStyleTop) {
|
|
|
|
|
- CGFloat imageW = self.imageView.frame.size.width;
|
|
|
|
|
- CGFloat imageH = self.imageView.frame.size.height;
|
|
|
|
|
- CGFloat titleIntrinsicContentSizeW = self.titleLabel.intrinsicContentSize.width;
|
|
|
|
|
- CGFloat titleIntrinsicContentSizeH = self.titleLabel.intrinsicContentSize.height;
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(- titleIntrinsicContentSizeH - spacing, 0, 0, - titleIntrinsicContentSizeW);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, - imageW, - imageH - spacing, 0);
|
|
|
|
|
- } else if (imagePositionStyle == SGImagePositionStyleBottom) {
|
|
|
|
|
- CGFloat imageW = self.imageView.frame.size.width;
|
|
|
|
|
- CGFloat imageH = self.imageView.frame.size.height;
|
|
|
|
|
- CGFloat titleIntrinsicContentSizeW = self.titleLabel.intrinsicContentSize.width;
|
|
|
|
|
- CGFloat titleIntrinsicContentSizeH = self.titleLabel.intrinsicContentSize.height;
|
|
|
|
|
- self.imageEdgeInsets = UIEdgeInsetsMake(titleIntrinsicContentSizeH + spacing, 0, 0, - titleIntrinsicContentSizeW);
|
|
|
|
|
- self.titleEdgeInsets = UIEdgeInsetsMake(0, - imageW, imageH + spacing, 0);
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
-@end
|
|
|
|
|
-
|
|
|