UIButton上使用UIEdgeInsetsMake让title跟图片对齐

UIButton上使用UIEdgeInsetsMake让title跟图片对齐

默认情况下,不设置的效果,都使居中现实,button为150*150

使用以下设置后:

  [self setTitleEdgeInsets:UIEdgeInsetsMake( 0.0,-backGroundImag.size.width, 0.0,0.0)];

  [self setImageEdgeInsets:UIEdgeInsetsMake(0.0, 0.0,0.0, -self.titleLabel.bounds.size.width)];

若要title在图片的上方,则位置相对于图片来说,向上移动-80

[self setTitleEdgeInsets:UIEdgeInsetsMake( -80.0,-backGroundImag.size.width, 0.0,0.0)];

    [self setImageEdgeInsets:UIEdgeInsetsMake(0.0, 0.0,0.0, -self.titleLabel.bounds.size.width)];

效果如下:

综上所述,若单独设置一个title或者image在button中的位置,UIEdgeInsets是相对于button的frame来计算的(上,左,下,右,),如果是刚才所描述的情况,则title是相对于image的frame设置的,而image的位置是相对于titel的位置设置的

over!

以上转载自:http://blog.csdn.net/yanxiaoqing/article/details/7230660



实例源码:

 UIImage * image = [[UIImage imageNamed:@"telIcon"] retain];
    NSLog(@"%@>>",NSStringFromCGSize(image.size));

    UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setBackgroundColor:[UIColor yellowColor]];
    [button setFrame:CGRectMake(80, 80, 150, 150)];
    [button setTitle:@"测试位置" forState:UIControlStateNormal];
    [button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
    [button.titleLabel setFont:[UIFont boldSystemFontOfSize:10.0]];

    [button setTitleEdgeInsets:UIEdgeInsetsMake(0.0, -image.size.width, 0.0, 0.0)];
    [button setImageEdgeInsets:UIEdgeInsetsMake(15.0, 0.0, 0.0, -button.titleLabel.bounds.size.width)];

    NSLog(@"%@",NSStringFromUIEdgeInsets(button.titleEdgeInsets));
    [button setImage:image forState:UIControlStateNormal];

    [self.view addSubview:button];

时间: 2024-12-11 06:04:46

UIButton上使用UIEdgeInsetsMake让title跟图片对齐的相关文章

UIButton上同时显示图片和文字的方法

参考:http://blog.csdn.net/qijianli/article/details/8152726 不过有个问题,就是我使用时不能改变文字的颜色,后来修改了一下方法,如下: 定义一个UIButton+Manager文件,在.h #import <UIKit/UIKit.h> @interface UIButton (UIButtonImageWithLable) - (void) setImage:(UIImage *)image withTitle:(NSString *)ti

ios7 关于searchbar上设置cancelButton的title属性

通过 [searchBarsetShowsCancelButton:YES];设置之后默认是"cancel",想改为中文的 在stackoverflow上参考了很多方法都没用 这里的关键是要获取到 searchbar中得 cancelButton 通过打印 [searchbar subviews] 得到结果如下 (lldb) po [searchBar subviews] <__NSArrayM 0xd6b0db0>( <UIView: 0xd6aab30; fram

我爱Java系列---【SpringMVC传统方式的文件上传和前端获取数据库图片在页面显示】

一.文件上传 说明:传统方式的文件上传,指的是我们上传的文件和访问的应用存在于同一台服务器上.并且上传完成之后,浏览器可能跳转. 1. 第一步:创建 maven 工程并导入 commons-fileupload 坐标 1 <dependency> 2 <groupId>commons-fileupload</groupId> 3 <artifactId>commons-fileupload</artifactId> 4 <version&g

IOS让返回按钮显示自定义标题而不是上个ViewController的title

在开发IOS的时候发现当从一个ViewController跳转到另一个ViewController时,被跳转到的那个ViewController的返回按钮总是显示的是上个ViewController的title.如果上个ViewController的title内容比较多的话会显得界面比较乱,所以我想要实现的是返回按钮只显示“Back”. 开发环境: IOS:10 Xcode:8 返回按钮的显示逻辑 想要知道怎么实现自己想要的功能首先要掌握相关的理论知识,下面举个例子说明. 假如从ViewCont

UIButton上字体的对齐方式

设置UIButton上字体的对齐方式,不是用: [Button.titleLabel setTextAlignment:UITextAlignmentCenter]; 而是用: [Button setContentHorizontalAlignment:UIControlContentHorizontalAlignmentCenter]; typedef NS_ENUM(NSInteger, UIControlContentHorizontalAlignment) { UIControlCont

模拟上传,可自行定义上传按钮的名称和图片。

<table>    <tr>    <td>上传</td>    <td style="width:300px;">                    <div style="position: absolute; z-index: 3; cursor:hand; float:left; width:227px;">              <input id="File

UITabbar上的item自定义背景色和图片,push之后再pop回去会变成系统默认颜色-蓝色

在iOS8系统下,UITabbar上的item自定义背景色和图片,push之后再pop回去会变成系统默认颜色-蓝色,本来设置的是绿色的:而且程序首次启动时也是系统默认的蓝色 UIImage *image=[UIImage imageNamed:@"xxxx"]; //设置选中时的图标 UIImage *selectedImage=[UIImage imageNamed: @"xxxx"]; // 声明这张图片用原图(别渲染) selectedImage = [sel

史上最简洁C# 生成条形码图片思路及示例分享

在网上看到一些人写关于条形码的代码都很长,有的甚至拿来卖,所以查了下资料,希望能对大家有帮助. 我的实现原理是: 其实Windows本身就有一个字体是用来显示条形码的. 只要将数字改为这种字体就变成了条形码. windows字体库下,有如下八种字体可以用来将数字转换成条形码: 代码如下: Code39AzaleaNarrow1 Code39AzaleaNarrow2 Code39AzaleaNarrow3 Code39AzaleaRegular1 Code39AzaleaRegular2 Cod

如何实现文本框和验证码图片对齐

如何实现文本框和验证码图片对齐:在默认情况下,如果文本框和图片在同一个元素中的话,不能够实现垂直对齐,比如验证码功能,左边是文本框,右边是验证码图片,如果不加控制它们是不能够对齐的,下面就通过代码实例介绍一下如何实现文本框和图片的对齐效果.代码如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=