详解button设置文字和图片

详解button设置文字和图片,第1张

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]

button.backgroundColor = kRandomColor

button.tag = i + addTag

button.frame = CGRectMake(kScreenWidth / 3 * i, 0, kScreenWidth / 3, 50)

//首先设置需要显示的文字图片

[button setTitle:titleArray[i] forState:UIControlStateNormal]

[button setTitleColor:[UIColor blackColor] forState:UIControlStateNormal]

[button setImage:image forState:UIControlStateNormal]

//再将文字和图片进行偏移处理

//这里+3和-3是需要文字和图片有一定的间隔

[button setTitleEdgeInsets:UIEdgeInsetsMake(0, -image.size.width, 0, image.size.width)]

[button setImageEdgeInsets:UIEdgeInsetsMake(0, button.titleLabel.bounds.size.width+3, 0, -button.titleLabel.bounds.size.width-3)]

//自己去将图片进行修改

- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{

// 创建一个bitmap的context

// 并把它设置成为当前正在使用的context

UIGraphicsBeginImageContext(size)

// 绘制改变大小的图片

[img drawInRect:CGRectMake(0, 0, size.width, size.height)]

// 从当前context中创建一个改变大小后的图片

UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext()

// 使当前的context出堆栈

UIGraphicsEndImageContext()

// 返回新的改变大小后的图片

return scaledImage

}

UIButton可以同时设置Title和Image,UIButton有两个属性:titleEdgeInsets(top,left,bottom,right)和imageEdgeInsets(top,left,bottom,right),通过设置这两个,就可以实现所有需要的Button的样式

UIButton 的 默认状态下imageEdgeInsets = UIEdgeInsetsMake(0,0,0,0)titleEdgeInsets = UIEdgeInsetsMake(0,0,0,0) 图片在左文字在右,而且整体水平和垂直居中 。比如下面这个图文按钮:

为了最美观一点,可以设置图标与文字间距 。如下图:

设置图片在右文字在左:

设置图片在上,文字在下:

设置图片左对齐:

设置文字右对齐:

设置文字左对齐,图片右对齐:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/bake/11843531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存