图片和标题 间距
self.titleEdgeInsets;改变标题在按钮中的位置
self.imageEdgeInsets改变图片在按钮中的位置
self.contentEdgeInsets改变按钮中所有内容的位置
设置内间距
图片 和标题 位置布局
直接影响按钮内部的子控件
缺陷不知道先调用的是哪个方法(不推荐使用)
- (CGRect)titleRectForContentRect:(CGRect)contentRect
{
self.titleH = contentRect.size.height * 0.4;
returnCGRectMake(0, 0, contentRect.size.width,self.titleH);
}
- (CGRect)imageRectForContentRect:(CGRect)contentRect
{
returnCGRectMake(0, contentRect.size.height * 0.4, contentRect.size.width, contentRect.size.height * 0.6);
}
一般情况下都是使用layoutSubviews布局子控件 layoutSubviews准确性高
使用示例如下:上图下文
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame=CGRectMake(V_S_W-Fit_Width*(59+27),22,Fit_Width*37,Fit_Width*37);
UIImage*btnImage = [UIImage imageNamed:@"icon"];
[btn setImage: btnImageforState:UIControlStateNormal];
[btn setTitle:@"编辑"forState:UIControlStateNormal];
btn.titleLabel.font=SMALL_TITLE_FONT;
[btn setImageEdgeInsets:UIEdgeInsetsMake(0, -2,5,5)];
[btn setTitleEdgeInsets:UIEdgeInsetsMake(0.0,-Fit_Width*35, -Fit_Width*40,0.0)];
[btn addTarget:selfaction:@selector(action :)forControlEvents:UIControlEventTouchUpInside];
[self addSubview:btn];