UIButton - 设置图片及文字、文字左对齐
来源:互联网 发布:苹果手机4g网络被劫持 编辑:程序博客网 时间:2024/04/29 20:34
有时候btn上边的文字是需要左对齐的,但是左对齐又太靠边,显得不大好看,所以要设置下title的间距:
//设置左对齐button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;//距离左边10个像素button.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);
上边只是简单使用,大多数情况下,会有左图右文字或者上图下字的设计。用一个Btn和一个Lab拼太繁琐,当然你也可以直接封装好一个模板。。不过btn的两个属性就能很方便的帮我们解决这个问题 :
1.setTitleEdgeInsets
2.setImageEdgeInsets
下边列一个具体的代码实现,能看明白的更好,看不明白的也可以直接拿来用。随后会整理出两个属性设置的规律。
- 左图右字
/** * 设置左图右文字 */-(void)event_setLeftImgRightTitle{ UIButton *replyBtn = [UIButton buttonWithType:UIButtonTypeCustom]; replyBtn.backgroundColor = [UIColor whiteColor]; // replyBtn.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft; // replyBtn.contentVerticalAlignment = UIControlContentVerticalAlignmentCenter; replyBtn.titleLabel.font = [UIFont systemFontOfSize:12.0f]; replyBtn.frame = CGRectMake(100, 200, 60, 26); [replyBtn setTitle:@"回复" forState:UIControlStateNormal]; [replyBtn setTitleColor:UIColorFromRGB(0x999999, 1.0) forState:UIControlStateNormal]; [replyBtn setTitleEdgeInsets:UIEdgeInsetsMake(5,-10, 5, 5)]; [replyBtn setImage:[UIImage imageNamed:@"news"] forState:UIControlStateNormal]; [replyBtn setImageEdgeInsets:UIEdgeInsetsMake(6, 5, 6,41)]; [replyBtn addTarget:self action:@selector(clickReplyBtn) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:replyBtn];}
效果如下 :
- 上图下字
/** * 设置上图下文字 */-(void)event_setTopImgBottomTitle{ UIButton *replyBtn = [UIButton buttonWithType:UIButtonTypeCustom]; replyBtn.frame = CGRectMake(100, 300, 200, 49); replyBtn.backgroundColor = [UIColor whiteColor]; NSString *text = @"个人" ; UIImage *image = [UIImage imageNamed:@"me-click"] ; CGFloat imageWidth = image.size.width; CGRect textRect = [text boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:FONT_S_12} context:nil]; CGFloat textWidth = roundf(textRect.size.width) ; replyBtn.titleLabel.font = [UIFont systemFontOfSize:12.0f]; [replyBtn setTitle:text forState:UIControlStateNormal]; [replyBtn setImage:image forState:UIControlStateNormal]; [replyBtn setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; [replyBtn setTitleEdgeInsets:UIEdgeInsetsMake(35, 0, 0, imageWidth)]; [replyBtn setImageEdgeInsets:UIEdgeInsetsMake(-10 , textWidth ,0, 0)]; [self.view addSubview:replyBtn];}
效果如下 :
走人,下次继续 ~
今天苹果发布了SE,看着不错呦 ~
期待6月份的WWDC大会 !
1 0
- UIButton - 设置图片及文字、文字左对齐
- 设置UIButton文字左对齐
- UIButton 文字左对齐
- UIButton左文字右图片
- 设置UIButton文字对齐方式
- UIAlertView设置文字左对齐
- button 设置文字左对齐
- UIButton上使用UIEdgeInsetsMaketitle设置图片与文字居中对齐
- UIbutton 上设置文字图片垂直居中对齐
- UIButton实现左文字右图片
- uibutton实现左文字右图片
- UIButton实现左文字右图片
- UIButton实现左文字右图片
- UIButton设置图片和文字
- UIButton设置UIControlContentHorizontalAlignment调整文字对齐方式
- UIButton左文字右图片,上图片下文字
- 设置UIButton中图片与文字居左显示,并且设置图片与文字之间的间距
- UIButton 文字左端对齐
- maven配置setting.xml文件详解
- iOS app 疑问解答
- easyui.min.js 报错rows is undefined
- Hexo安装百度统计流程
- 3月21号 雨
- UIButton - 设置图片及文字、文字左对齐
- maven配置pom.xml文件详解
- 浅谈Ubuntu上离线安装包的制作与安装问题
- [BZOJ1012][JSOI2008]最大数maxnumber(线段树)
- poj1062昂贵的聘礼【最短路反向建图】
- 第一次调微信支付正常弹出支付页面并成功支付了,再次调用时就支付异常,换个微信账号又能调用一次
- Ubuntu下ttf-mscorefonts-installer安装问题
- 树形结构的处理--组合模式
- python处理文件效率对比awk