IOS UIButton(UIEdgeInsets)/设置图片和文字上下垂直居中对齐

news/2024/7/23 8:44:18

UIEdgeInsets

 

 

typedef struct UIEdgeInsets {
    CGFloat top, left, bottom, right;  // specify amount to inset (positive) for each of the edges. values can be negative to 'outset'
} UIEdgeInsets;



 

 

在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets

 

@property(nonatomic)          UIEdgeInsets contentEdgeInsets UI_APPEARANCE_SELECTOR; // default is UIEdgeInsetsZero
@property(nonatomic)          UIEdgeInsets titleEdgeInsets;                // default is UIEdgeInsetsZero
@property(nonatomic)          BOOL         reversesTitleShadowWhenHighlighted; // default is NO. if YES, shadow reverses to shift between engrave and emboss appearance
@property(nonatomic)          UIEdgeInsets imageEdgeInsets;                // default is UIEdgeInsetsZero



 

 

UIEdgeInsetsMake

里面的四个参数表示距离上边界、左边界、下边界、右边界的距离,默认都为零,title/image在button的正中央

 

UIKIT_STATIC_INLINE UIEdgeInsets UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right) {
    UIEdgeInsets insets = {top, left, bottom, right};
    return insets;
}



 

 

 self.view.backgroundColor = [UIColor blackColor];
    
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];//button的类型
    button.frame = CGRectMake(100, 100,90, 90);//button的frame
   button.backgroundColor = [UIColor cyanColor];//button的背景颜色
    
//    [button setBackgroundImage:[UIImage imageNamed:@"man_64.png"] forState:UIControlStateNormal];
    
//    在UIButton中有三个对EdgeInsets的设置:ContentEdgeInsets、titleEdgeInsets、imageEdgeInsets
    [button setImage:[UIImage imageNamed:@"IconHome@2x.png"] forState:UIControlStateNormal];//给button添加image
    button.imageEdgeInsets = UIEdgeInsetsMake(5,13,21,button.titleLabel.bounds.size.width);//设置image在button上的位置(上top,左left,下bottom,右right)这里可以写负值,对上写-5,那么image就象上移动5个像素
    
    [button setTitle:@"首页" forState:UIControlStateNormal];//设置button的title
    button.titleLabel.font = [UIFont systemFontOfSize:16];//title字体大小
    button.titleLabel.textAlignment = NSTextAlignmentCenter;//设置title的字体居中
    [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];//设置title在一般情况下为白色字体
    [button setTitleColor:[UIColor grayColor] forState:UIControlStateHighlighted];//设置title在button被选中情况下为灰色字体
     button.titleEdgeInsets = UIEdgeInsetsMake(71, -button.titleLabel.bounds.size.width-50, 0, 0);//设置title在button上的位置(上top,左left,下bottom,右right)
    
//    [button setContentEdgeInsets:UIEdgeInsetsMake(70, 0, 0, 0)];//

    
//   button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentCenter;//设置button的内容横向居中。。设置content是title和image一起变化
    
    
    [button addTarget:self action:@selector(tap) forControlEvents:UIControlEventTouchUpInside];
    
    
    
    
    
    [self.view addSubview:button];

 

//button相应的事件
-(void)tap {
    NSLog(@"tap a button");
    
    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"hello" message:@"willingseal" delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];
    [alertView show];

}


效果图:

 

我这里使用的image是64*64的

 

 

--

 

转载于:https://www.cnblogs.com/yuyu-2012/p/4876460.html


http://www.niftyadmin.cn/n/1832961.html

相关文章

引领设计趋势!最新潮的24个获奖网页作品欣赏

当下的设计趋势已经彻底改变了过去几年对于网页设计的概念,而且至少在接下来的这一年里会发展得如火如荼。我们已经接触到了垂直滚动、扁平化设计、复古的配色、极简的配色,以及幻灯动画展示,当然,响应式设计才是最头等的趋势。 最…

分享:设置网卡混杂模式

设置网卡混杂模式 http://my.oschina.net/u/138210/blog/110517

资源管理更新系统V2.0版的一些问题

1、在上传文件夹时现在只能传给吴缤进行上传,不够友好,也降低了上传速度, 办法:用C#写一个WINFORM程序,为用户提供上传功能,登录也使用JAVA提供的WEBSERVICE提供登录验证,然后选择一个目录 &…

parse_ini_file() 函数

PHP parse_ini_file() 函数 PHP Filesystem 函数 定义和用法 parse_ini_file() 函数解析一个配置文件,并以数组的形式返回其中的设置。 语法 parse_ini_file(file,process_sections) 参数描述file必需。规定要检查的 ini 文件。process_sections可选。如果设置为 tr…

Storyboard和Xib的混合用法

转载地址:http://blog.csdn.net/guchengluoye/article/details/7472771转载于:https://blog.51cto.com/memory/1243256

FragmentTransaction.addToBackStack无效的问题

FragmentTransaction.addToBackStack无效的问题: 如果当前的类继承的ActionBarActivity,则FragmentManager必须来自v4包,这样addToBackStack (null)是有效的,按返回键的时候可以返回上一个碎片。 import android.support.v4.app.F…

绩效考核就是这么简单

“开轩面场圃,把酒话桑麻……”在绩效考核的时节说起绩效考核的话题却远没那么轻松。但依然有话要说。 我们不妨换个方式解读这个大话题,这是一种便捷的“换脑”方式。“猫捉老鼠”——一个大家并不陌生的寓言故事。 怎样给猫分鱼? 猫在主…

企业网站如何备案

当前,随着国家工信部对互联网行业管理力度的提升和规范化,在网站制作公司跟客户把网站做完成以后,政策规定网站需要通过备案才能正常访问。今天我们就聊聊网站备案流程和体会以及一些注意事项。 工具/原料域名 主机 备案人 营业执照 联系信息…