1.設(shè)置左文右圖時(shí)?button.titleLabel.intrinsicContentSize.width?+???button.imageView.bounds.size.width 值要小于button.size.width
2.設(shè)置上圖下文或者上圖下文時(shí)??button.titleLabel.intrinsicContentSize.height +???button.imageView.bounds.size.height? 值要小于button.size.height
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
? ? [super viewDidLoad];
? ? // Do any additional setup after loading the view, typically from a nib.
? ? UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
? ? [buttonsetFrame:CGRectMake(100,200,134,55)];
? ? button.backgroundColor = [UIColor grayColor];
? ? [button.titleLabel setFont:[UIFont systemFontOfSize:12]];
? ? [buttonsetTitleColor:[UIColor? purpleColor] forState:UIControlStateNormal];
? ? [buttonsetTitle:@"馬甲哥" forState:UIControlStateNormal];
? ? [buttonsetImage:[UIImage imageNamed:@"uc_novice_college_taskicon"] forState:UIControlStateNormal];
? ? button.titleLabel.backgroundColor = [UIColor yellowColor];
? ? [self.viewaddSubview:button];
? ? //左文右圖
? ? /*
? ? CGFloat space = 4;
? ? CGSize buttonSize = button.frame.size;
? ? CGSize titleSize = button.titleLabel.intrinsicContentSize;
? ? CGSize imageSize = button.imageView.bounds.size;
? ? [button setTitleEdgeInsets:UIEdgeInsetsMake(0, -imageSize.width - space/2, 0, imageSize.width + space/2)];
? ? [button setImageEdgeInsets:UIEdgeInsetsMake(0, titleSize.width + space/2, 0, -titleSize.width - space/2)];
?? ? */
? ? // 上圖下文
? ? /*
? ? CGFloat space = 4;
? ? CGSize buttonSize = button.frame.size;
? ? CGSize titleSize = button.titleLabel.intrinsicContentSize;
? ? CGSize imageSize = button.imageView.bounds.size;
? ? CGFloat afterTop = (buttonSize.height - (titleSize.height + imageSize.height + space))/2;
? ? CGFloat afterLeft = (buttonSize.width - (titleSize.width + imageSize.width))/2;
? ? CGFloat imageTop = (buttonSize.height - imageSize.height)/2 - afterTop;
? ? CGFloat imageLeft = buttonSize.width/2 - afterLeft - imageSize.width/2;
? ? CGFloat titleTop = (buttonSize.height - titleSize.height)/2 - afterTop;
? ? CGFloat titleLeft = buttonSize.width/2 - afterLeft - titleSize.width/2;
? ? [button setImageEdgeInsets:UIEdgeInsetsMake(-imageTop , imageLeft, imageTop, -imageLeft)];
? ? [button setTitleEdgeInsets:UIEdgeInsetsMake(titleTop, -titleLeft, -titleTop, titleLeft)];
?? ? */
? ? // 上文下圖
? ? /*
? ? CGFloat space = 4;
? ? CGSize buttonSize = button.frame.size;
? ? CGSize titleSize = button.titleLabel.intrinsicContentSize;
? ? CGSize imageSize = button.imageView.bounds.size;
? ? CGFloat afterTop = (buttonSize.height - (titleSize.height + imageSize.height + space))/2;
? ? CGFloat afterLeft = (buttonSize.width - (titleSize.width + imageSize.width))/2;
? ? CGFloat imageTop = (buttonSize.height - imageSize.height)/2 - afterTop;
? ? CGFloat imageLeft = buttonSize.width/2 - afterLeft - imageSize.width/2;
? ? CGFloat titleTop = (buttonSize.height - titleSize.height)/2 - afterTop;
? ? CGFloat titleLeft = buttonSize.width/2 - afterLeft - titleSize.width/2;
? ? [button setImageEdgeInsets:UIEdgeInsetsMake(imageTop , imageLeft, -imageTop, -imageLeft)];
? ? [button setTitleEdgeInsets:UIEdgeInsetsMake(-titleTop, -titleLeft, titleTop, titleLeft)];
?? ? */
? ? NSLog(@"titleEdgeInsets:%@",NSStringFromUIEdgeInsets(button.titleEdgeInsets));
}
- (void)didReceiveMemoryWarning {
? ? [super didReceiveMemoryWarning];
? ? // Dispose of any resources that can be recreated.
}
@end