先看效果
如何設定的公式是:
上面公式的測試demo:
代碼如下:
// ViewController.m
// 按鈕的圖文混排
//
// Created by MAC on 16/9/26.
// Copyright © 2016年 NetworkCode小賤. All rights reserved.
//
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self testButtonS];
// Do any additional setup after loading the view, typically from a nib.
}
#pragma mark 隻顯示圖檔
-(void)showButtonImage{
UIButton * ImageBtn = [UIButton buttonWithType:UIButtonTypeCustom];
ImageBtn.frame = CGRectMake(0, 0, 50, 50);
ImageBtn.center = CGPointMake(self.view.center.x, self.view.center.y);
[ImageBtn setImage:[UIImage imageNamed:@"btn_0"] forState:UIControlStateNormal];
ImageBtn.backgroundColor = [UIColor blueColor];
[self.view addSubview:ImageBtn];
}
#pragma mark 隻顯示圖檔
-(void)showButtonText{
UIButton * TextBtn = [UIButton buttonWithType:UIButtonTypeCustom];
TextBtn.frame = CGRectMake(0, 0, 60, 50);
TextBtn.center = CGPointMake(self.view.center.x, self.view.center.y);
[TextBtn setTitle:@"成功QQ吧" forState:UIControlStateNormal];
[TextBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
TextBtn.backgroundColor = [UIColor blueColor];
TextBtn.titleLabel.adjustsFontForContentSizeCategory = YES;
TextBtn.titleLabel.adjustsFontSizeToFitWidth = YES;
[self.view addSubview:TextBtn];
}
#pragma mark 按鈕的圖文混合
-(void)showButton_Image_Text{
UIButton * Button_Image_Text = [UIButton buttonWithType:UIButtonTypeCustom];
Button_Image_Text.frame = CGRectMake(0, 0, 120, 50);
Button_Image_Text.center = CGPointMake(self.view.center.x, self.view.center.y);
[Button_Image_Text setImage:[UIImage imageNamed:@"btn_1"] forState:UIControlStateNormal];
[Button_Image_Text setTitle:@"成功QQ吧" forState:UIControlStateNormal];
[Button_Image_Text setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
Button_Image_Text.backgroundColor = [UIColor blueColor];
Button_Image_Text.titleLabel.adjustsFontForContentSizeCategory = YES;
Button_Image_Text.titleLabel.adjustsFontSizeToFitWidth = YES;
[self.view addSubview:Button_Image_Text];
}
#pragma mark 圖檔在右邊的組合
-(void)showButton_Text_Image{
UIButton * Button_Image_Text = [UIButton buttonWithType:UIButtonTypeCustom];
Button_Image_Text.frame = CGRectMake(0, 0, 120, 50);
Button_Image_Text.center = CGPointMake(self.view.center.x, self.view.center.y);
[Button_Image_Text setImage:[UIImage imageNamed:@"btn_1"] forState:UIControlStateNormal];
[Button_Image_Text setTitle:@"成功QQ吧" forState:UIControlStateNormal];
[Button_Image_Text setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
Button_Image_Text.backgroundColor = [UIColor blueColor];
Button_Image_Text.titleLabel.adjustsFontForContentSizeCategory = YES;
Button_Image_Text.titleLabel.adjustsFontSizeToFitWidth = YES;
[self setButtonContent:Button_Image_Text];
// [self setButtonContentType:Button_Image_Text];
[self.view addSubview:Button_Image_Text];
}
#pragma mark 進行設定按鈕
-(void)setButtonContent:(UIButton*)setButton{
NSLog(@"按鈕的文字對象:%@",setButton.titleLabel);
NSLog(@"按鈕的圖檔對象:%@",setButton.imageView);
[setButton setTitleEdgeInsets:UIEdgeInsetsMake(0, -setButton.titleLabel.frame.origin.x+setButton.imageView.frame.origin.x, 0, setButton.titleLabel.frame.origin.x)];
[setButton setImageEdgeInsets:UIEdgeInsetsMake(0, setButton.frame.size.width - setButton.imageView.frame.origin.x - setButton.imageView.frame.size.width, 0,setButton.imageView.frame.origin.x)];
}
#pragma mark 圖上,文下的組合
-(void)setButtonContentType:(UIButton*)setButton{
[setButton setTitleEdgeInsets:UIEdgeInsetsMake(setButton.imageView.frame.origin.y + setButton.imageView.frame.size.height, -setButton.imageView.frame.origin.x-setButton.imageView.frame.size.width, 10,-setButton.imageView.frame.origin.x)];
[setButton setImageEdgeInsets:UIEdgeInsetsMake(0, (setButton.frame.size.width - setButton.imageView.frame.size.width)*0.5, 0,(setButton.frame.size.width - setButton.imageView.frame.size.width)*0.5)];
}
#pragma mark 圖文混排的測試
-(void)testButtonS{
NSArray * ImageSource = @[[UIImage imageNamed:@"btn_0"],[UIImage imageNamed:@"btn_1"],[UIImage imageNamed:@"btn_2"],[UIImage imageNamed:@"btn_3"]];
NSArray * TitleSource = @[@"使用者電話",@"使用者密碼",@"使用者等級",@"使用者成長"];
float F = (self.view.frame.size.width - TitleSource.count +1)/ TitleSource.count;
for (unsigned int i =0 ; i<TitleSource.count; i++) {
UIButton * ButtonF = [UIButton buttonWithType:UIButtonTypeCustom];
ButtonF.frame = CGRectMake(i*(F+1), 64, F, 60);
ButtonF.layer.masksToBounds = YES;
ButtonF.layer.borderColor = [UIColor redColor].CGColor;
ButtonF.layer.borderWidth = 0.5;
[ButtonF setImage:ImageSource[i] forState:UIControlStateNormal];
[ButtonF setTitle:TitleSource[i] forState:UIControlStateNormal];
ButtonF.titleLabel.font = [UIFont systemFontOfSize:15];
[ButtonF setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
ButtonF.titleLabel.adjustsFontSizeToFitWidth = YES;
float A = ButtonF.imageView.frame.origin.x;
float C = ButtonF.imageView.frame.size.width;
float D = ButtonF.imageView.frame.origin.y;
float G = ButtonF.imageView.frame.size.height;
[ButtonF setImageEdgeInsets:UIEdgeInsetsMake(0, 0.5*(F-C), 0, 0.5*(F-C))];
[ButtonF setTitleEdgeInsets:UIEdgeInsetsMake(D+G, -(A+C), 0, -A)];
[self.view addSubview:ButtonF];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
成功截圖: