设置UIButton图片和文字的位置(下上文图, 上图下文, 左图右文, 左文右图)
来源:互联网 发布:零日网络战 编辑:程序博客网 时间:2024/05/17 09:23
各位码友, 想必大家在项目中都会遇到这种场景, UI设计师设计一个按钮,非要同时有图片及文字,而且位置不一, 看到这里就有些头疼,今天来分享一个封装的api方法, 直接调用皆可简单实现其功能:
首先定义几个位置类型:
#pragma mark - button文字所在位置typedef NS_ENUM(NSInteger, RSButtonType) { RSButtonTypeRight = 0, //文字图片在右测 RSButtonTypeLeft, //文字图片在左测 RSButtonTypeBottom, //文字图片在下测 RSButtonTypeTop //文字图片在上测};
我是在类的延展里写的, 大家也可以采取其他方式写, 方法都是一样的~~
在.h文件中定义一个方法:
/** * 设置button中title的位置 * * @param type type位置类型 */- (void)setButtonShowType:(RSButtonType)type;
然后在.m中实现该方法
- (void)setButtonShowType:(RSButtonType)type{ [self layoutIfNeeded]; CGRect titleFrame = self.titleLabel.frame; CGRect imageFrame = self.imageView.frame; CGFloat space = titleFrame.origin.x - imageFrame.origin.x - imageFrame.size.width + 4; switch (type) { case RSButtonTypeRight: { [self setTitleEdgeInsets:UIEdgeInsetsMake(0,imageFrame.size.width - space, 0, -(imageFrame.size.width - space))]; [self setImageEdgeInsets:UIEdgeInsetsMake(0, -(titleFrame.origin.x - imageFrame.origin.x), 0, imageFrame.origin.x - titleFrame.origin.x)]; } break; case RSButtonTypeLeft: { [self setImageEdgeInsets:UIEdgeInsetsMake(0,titleFrame.size.width + space, 0, -(titleFrame.size.width + space))]; [self setTitleEdgeInsets:UIEdgeInsetsMake(0, -(titleFrame.origin.x - imageFrame.origin.x), 0, titleFrame.origin.x - imageFrame.origin.x)]; } break; case RSButtonTypeBottom: { [self setImageEdgeInsets:UIEdgeInsetsMake(0,0, titleFrame.size.height + space, -(titleFrame.size.width))]; [self setTitleEdgeInsets:UIEdgeInsetsMake(imageFrame.size.height + space, -(imageFrame.size.width), 0, 0)]; } break; case RSButtonTypeTop: { [self setTitleEdgeInsets:UIEdgeInsetsMake(0,-(imageFrame.size.width), imageFrame.size.height + space, 0)]; [self setImageEdgeInsets:UIEdgeInsetsMake(titleFrame.size.height + space,(titleFrame.size.width), 0, 0)]; } break; default: break; }}
至于调用, 就更简单了
[_likeButton setButtonShowType:RSButtonTypeLeft];
效果如下图:
希望可以帮到大家, 发现错误欢迎及时指正, 共同进度!!!!
阅读全文
0 0
- 设置UIButton图片和文字的位置(下上文图, 上图下文, 左图右文, 左文右图)
- UIButton上图片和文字的位置调整
- UIButton左文字右图片,上图片下文字
- uibutton 改变文字和图片的位置
- ios UIButton的图片和文字位置
- UIEdgeInsetsMake设置UIButton的图片、文字的相对位置
- UIButton中图片与文字的位置设置
- UIButton的UIEdgeInsets功能:设置button上的文字和图片的位置
- iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片 在定义位置
- 28.iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片 在定义位置
- iOS - UIButton(UIEdgeInsets)/设置button上的文字和图片 在定义位置
- UIButton 设置图片文字位置 -- imageEdgeInsets && titleEdgeInsets
- UIButton设置图片和文字
- 调整UIButton上图片的位置和大小
- UIButton上的图片和文字位置调整
- UIButton上的图片和文字位置调整
- UIButton上的图片和文字位置调整
- UIButton的图片和文字相对位置调整
- 加性噪声和乘性噪声
- gdb for Arm
- gulp打包压缩
- applicationContext.xml
- spring-boot 集成 rabbitmq
- 设置UIButton图片和文字的位置(下上文图, 上图下文, 左图右文, 左文右图)
- Linux为Mysql安装Mysql-connector
- springboot表单验证
- 解决ScrollView嵌套viewpager的冲突问题
- PLL总结——设置时钟频率
- 防火防盗防诈骗!老实程序员如何保护好自己?
- springboot
- swipe.js触摸后不自动滚动的修改
- PAT (Basic Level) Practise (中文) 1067. 试密码(20)