在理解上一篇文章基础上,可见btn中默认img和title水平布局,img居左,title居右;
img中心偏左,与btn中心相差btn.titleLabel.intrinsicContentSize.width/2;
title中心偏右,与btn中心相差btn.currentImage.size.width/2;
edge最好设置成负值(图中第二种设置),即向外延伸区域,或者left与right同时设置,平移中心(图中第四种设置),避免压缩区域,导致显示不全设置出错(图中第三种设置);
- (void)createBtn {
int top = 0; int bottom = 0;
int imgw = 0; int titlew = 0;
for (int i = 0 ; i < 4; i ++) {
UILabel *lbl = [[UILabel alloc] initWithFrame:CGRectMake((50*i)%300,20 + 50*(i/6), 40, 10)];
lbl.font = [UIFont systemFontOfSize:8];
[self.view addSubview:lbl];
UILabel *lbl2 = [[UILabel alloc] initWithFrame:CGRectMake((50*i)%300,30 + 50*(i/6), 40, 10)];
lbl2.font = [UIFont systemFontOfSize:8];
[self.view addSubview:lbl2];
UIButton *btn = [self makebtn];
imgw = btn.currentImage.size.width;
titlew = btn.titleLabel.intrinsicContentSize.width;
btn.frame = CGRectMake((50*i)%300,50 + 50*(i/6), 40, 20);
btn.backgroundColor = [UIColor colorWithRed:230/255. green:240/255. blue:0 alpha:1];
if(i== 0) {
[btn setImageEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
[btn setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
}
if(i== 1) {
[btn setImageEdgeInsets:UIEdgeInsetsMake(top, 0, 0, -titlew)];
[btn setTitleEdgeInsets:UIEdgeInsetsMake(top, -imgw, 0, 0)];
}
if(i== 2) {
[btn setImageEdgeInsets:UIEdgeInsetsMake(0, titlew, bottom, 0)];
[btn setTitleEdgeInsets:UIEdgeInsetsMake(0, 0, bottom, imgw)];
}
if(i== 3) {
[btn setImageEdgeInsets:UIEdgeInsetsMake(top, titlew/2, bottom, -titlew/2)];
[btn setTitleEdgeInsets:UIEdgeInsetsMake(top, -imgw/2, bottom, imgw/2)];
}
lbl.text = [NSString stringWithFormat:@"%d,%d,%d,%d",(int)btn.imageEdgeInsets.top,(int)btn.imageEdgeInsets.left,(int)btn.imageEdgeInsets.bottom,(int)btn.imageEdgeInsets.right];
lbl2.text = [NSString stringWithFormat:@"%d,%d,%d,%d",(int)btn.titleEdgeInsets.top,(int)btn.titleEdgeInsets.left,(int)btn.titleEdgeInsets.bottom,(int)btn.titleEdgeInsets.right];
[self.view addSubview:btn];
}
}
网友评论