天天看點

Button的上下圖文混排

先看效果

Button的上下圖文混排

如何設定的公式是:

Button的上下圖文混排

上面公式的測試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

成功截圖:

Button的上下圖文混排

繼續閱讀