目前很多app首页功能区都类似工具栏上图标加下文字的方式来自定义按钮。当然,我们也可以用两个控件实现,但是,提升不了我们的逼格。接下来就介绍几种自定义这种上图标下文字的按钮的几种方式。先上图。
![首页自定义按钮.png](https://img-blog.csdn.net/20170629213116116?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTExMzc2MTE4MjQ=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
一、利用属性文本NSAttributedString来生成图片文本上下排列的按钮
1.复写NSAttributedString方法
extension NSAttributedString {
class func imageTextInit(image: UIImage, imageW: CGFloat, imageH: CGFloat, labelTitle: String, fontSize: CGFloat, titleColor: UIColor, labelSpacing: CGFloat) -> NSAttributedString{
let attachment = NSTextAttachment()
attachment.image = image
attachment.bounds = CGRectMake(0, 0, imageW, imageH)
let imageText = NSAttributedString(attachment: attachment)
let titleDict = [NSFontAttributeName: UIFont.systemFontOfSize(fontSize), NSForegroundColorAttributeName: titleColor]
let text = NSAttributedString(string: labelTitle, attributes: titleDict)
let spaceDict = [NSFontAttributeName:UIFont.systemFontOfSize(labelSpacing)]
let lineText = NSAttributedString(string: "\n\n", attributes: spaceDict)
let mutableAttr = NSMutableAttributedString(attributedString: imageText)
mutableAttr.appendAttributedString(lineText)
mutableAttr.appendAttributedString(text)
return mutab