UIButton图片与文字位置调整

1:左图右文

默认效果就行

 

2:左文右图

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn addTarget:self action:@selector(changeBtnClicked) forControlEvents:UIControlEventTouchUpInside];
    btn.frame = CGRectMake(0, 0, 80, 20);
    btn.titleLabel.font = kNormalActionFont;
    [btn setTitleColor:DJNavTextColor forState:UIControlStateNormal];

    NSDictionary *cityDict = [QTXUserDataModel objectForDestKey:kUserLocationCityKey];
    NSString *tStr = cityDict[@"city"];
    UIImage *aImg = [UIImage imageNamed:@"btn_arrow_bottom"];
    {
        [btn setImage:aImg forState:UIControlStateNormal];
        [btn setTitle:tStr forState:UIControlStateNormal];

        btn.titleEdgeInsets = UIEdgeInsetsMake(0, -btn.imageView.frame.size.width, 0, btn.imageView.frame.size.width);
        btn.imageEdgeInsets = UIEdgeInsetsMake(0, btn.titleLabel.frame.size.width, 0, -btn.titleLabel.frame.size.width);
    }

  

 

3:上图下文

            UIButton *aBtn = [UIButton buttonWithType:UIButtonTypeCustom];

            aBtn.frame = CGRectMake((kCellWidth-90)/2, self.view.height - 20 - 45, 90, 45);

            [aBtn addTarget:self action:@selector(logoutBtnClicked) forControlEvents:UIControlEventTouchUpInside];

            aBtn.titleLabel.font = [UIFont systemFontOfSize:12.5];

            [aBtn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

            [aBtn setTitle:_(@"切换/退出账号") forState:UIControlStateNormal];

            [aBtn setImage:[UIImage imageNamed:@"icon_quit"] forState:UIControlStateNormal];

            [self.view addSubview:aBtn];

            

            CGSize imageSize = aBtn.imageView.frame.size;

            CGSize titleSize = aBtn.titleLabel.frame.size;

            CGSize textSize = [aBtn.titleLabel.text sizeWithFont:aBtn.titleLabel.font];

            CGSize frameSize = CGSizeMake(ceilf(textSize.width), ceilf(textSize.height));

            if (titleSize.width + 0.5 < frameSize.width) {

                titleSize.width = frameSize.width;

            }

            CGFloat totalHeight = (imageSize.height + titleSize.height + 5);

            aBtn.imageEdgeInsets = UIEdgeInsetsMake(- (totalHeight - imageSize.height), 0.0, 0.0, - titleSize.width);

            aBtn.titleEdgeInsets = UIEdgeInsetsMake(0, - imageSize.width, - (totalHeight - titleSize.height), 0);

       

  

 

posted @ 2015-11-24 15:08  willbin  阅读(418)  评论(0编辑  收藏  举报