一个简单的按钮,里面可能不仅仅是显示文字,让我们去点击,一个按钮控件,子控件可能会有一个图片, 当然,也可能会包含一个图片和文字,里面还嵌套着内部间距等各种问题。(也要值得注意的的是这里的图片不是通过setBackgroundImage来load进图片的,而是通过setImage)
说到间距,其实主要以下三个:
btn.titleEdgeInsets
btn.imageEdgeInsets
btn.contentEdgeInsets
例如我们有一种这样的界面,是一个按钮控件,里面设置了图片和文字:
// top left bottom right(上左下右,逆时针)
// contentEdgeInsets:会影响按钮内部的所有内容(里面的imageView和titleLabel)
btn.contentEdgeInsets = UIEdgeInsetsMake(50, 50, 0, 0);//所有内容的左边和顶部都下移50
// titleEdgeInsets:只影响按钮内部的titleLabel
btn.titleEdgeInsets = UIEdgeInsetsMake(0, 10, 0, 0);//仅仅是文字部分的左边和顶部都下移50
// imageEdgeInsets:只影响按钮内部的imageView
btn.imageEdgeInsets = UIEdgeInsetsMake(50, 50, 0, 0);//仅仅是图片位置的左边和顶部都下移50
如果想打印数据信息:
NSLog(@"%@",NSStringFromUIEdgeInsets(self.view.contentInset));