1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > iOS UIButton文字与图片交换位置

iOS UIButton文字与图片交换位置

时间:2024-08-09 00:33:53

相关推荐

iOS UIButton文字与图片交换位置

UIButton默认,图片居左,文字在右,垂直居中显示,文字与图片没有间距,如下图:

可以通过设置UIButton中的titleEdgeInsets和imageEdgeInsets改变按钮的imageView与titleLabel的位置与间距,推荐给UIButton添加一个分类,将一下方法公开出来,方便所有的按钮调用

github Demo下载地址:/yanhaiqiang/HQIconButton

1.图片居左,文字在右,垂直居中显示,文字与图片没有间距为10,如下图:

代码如下:

- (void)setIconInLeftWithSpacing:(CGFloat)Spacing{self.titleEdgeInsets = (UIEdgeInsets){.top = 0,.left = Spacing/2,.bottom = 0,.right = -Spacing/2,};self.imageEdgeInsets = (UIEdgeInsets){.top = 0,.left = -Spacing/2,.bottom = 0,.right = Spacing/2,};}

2.图片居右,文字在左,垂直居中显示,文字与图片没有间距为10,如下图:

代码如下:

- (void)setIconInRightWithSpacing:(CGFloat)Spacing{ CGFloat img_W = self.imageView.frame.size.width;CGFloat tit_W = self.titleLabel.frame.size.width;self.titleEdgeInsets = (UIEdgeInsets){.top = 0,.left = - (img_W + Spacing / 2),.bottom = 0,.right = (img_W + Spacing / 2),};self.imageEdgeInsets = (UIEdgeInsets){.top = 0,.left = (tit_W + Spacing / 2),.bottom = 0,.right = - (tit_W + Spacing / 2),};}

3.图片居上,文字在下,垂直居中显示,文字与图片没有间距为10,如下图:

代码如下:

- (void)setIconInTopWithSpacing:(CGFloat)Spacing{CGFloat img_W = self.imageView.frame.size.width;CGFloat img_H = self.imageView.frame.size.height;CGFloat tit_W = self.titleLabel.frame.size.width;CGFloat tit_H = self.titleLabel.frame.size.height;self.titleEdgeInsets = (UIEdgeInsets){.top = (tit_H / 2 + Spacing / 2),.left = - (img_W / 2),.bottom = - (tit_H / 2 + Spacing / 2),.right = (img_W / 2),};self.imageEdgeInsets = (UIEdgeInsets){.top = - (img_H / 2 + Spacing / 2),.left = (tit_W / 2),.bottom = (img_H / 2 + Spacing / 2),.right = - (tit_W / 2),};}

4.图片居下,文字在上,垂直居中显示,文字与图片没有间距为10,如下图:

代码如下:

- (void)setIconInBottomWithSpacing:(CGFloat)Spacing{CGFloat img_W = self.imageView.frame.size.width;CGFloat img_H = self.imageView.frame.size.height;CGFloat tit_W = self.titleLabel.frame.size.width;CGFloat tit_H = self.titleLabel.frame.size.height;self.titleEdgeInsets = (UIEdgeInsets){.top = - (tit_H / 2 + Spacing / 2),.left = - (img_W / 2),.bottom = (tit_H / 2 + Spacing / 2),.right = (img_W / 2),};self.imageEdgeInsets = (UIEdgeInsets){.top = (img_H / 2 + Spacing / 2),.left = (tit_W / 2),.bottom = - (img_H / 2 + Spacing / 2),.right = - (tit_W / 2),};}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。