UIButton内有两个控件titleLabel和imageView,可以用来显示一个 文本和图片,这里的图片区别于背景图片。给UIButton同时设置了title和image后,它们会图片在左边,文本在图片右边显示。它们两个做为一个整体依赖于button的contentHorizontalAlignment居左居右或居中显示。contentVerticalAlignment居上居中聚下显示。
想两改变两个子控件的显示位 置,可以分别通过setTitleEdgeInsets和setImageEdgeInsets来实现。需要注意的是,对titleLabel和 imageView设置偏移,是针对它当前的位置起作用的,并不是针对它距离button边框的距离的。记得调整其中一个位置的时候看下另外一个是否需要调整。
文本size的计算:
iOS7之前可以使用sizeWithFont:
获取文本的宽度,
iOS7及之后建议使用sizeWithAttributes:
进行获取